v1 = 1 - 1 == 0
v2 = v1 || raise RuntimeError
puts v2 && false
1行目を処理した後のv1はtrueになります。
2行目では、||の優先順位が高いため、v1 || raiseが評価されます。
しかし、後ろにRuntimeErrorがあるため、シンタックスエラーになっています。
この挙動を回避するには、以下の3つの方法があります。
ex1)
v2 = v1 or raise RuntimeError
ex2)
v2 = v1 || raise(RuntimeError)
ex3)
v2 = v1 || (raise RuntimeError)
問題集にこう書いてあるのですが、
v2 = v1 || raise RuntimeError
と
v2 = v1 || raise(RuntimeError)
この違いがよく分かりません。
exmampleというメソッドに引数があった場合に
example(1)
と
example 1
といったパターンがあり、どちらにしろこの1文をまとめて評価されていると思うのですが、私は
example 1 では()が省略されているものだと思っていました。
この問題を見る限りそれは間違いなのでしょうか?
No.1ベストアンサー
- 回答日時:
引数の括弧省略時の「メソッドと引数の結合度合い」は、ほとんどの演算子の結合度合いより低いので、他の演算子が絡むときは、かっこを付けたほうがいいです。
公式リファレンスを見たのですが、そのあたりを書いている部分が見つかりませんでした。
v2 = v1 || raise RuntimeError
は、
v2 = (v1 || raise)(RuntimeError)
と同じ意味で、オア演算の結果の値をメソッドだとみなして、それをRuntimeErrorを引数に呼び出そうとします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース stable diffusionのインストールがうまくいきません。 1 2023/06/20 13:09
- 工学 2端子対回路の問題です。 (1)1個目の回路の4端子定数を求めよ。 (2)2個目の回路の電圧V2を求 1 2023/05/30 23:36
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# ある線が円の範囲に入っているかの計算 1 2022/12/07 16:14
- その他(プログラミング・Web制作) Pythonでの不均一なサイコロをつくるプログラミングがわかりません 4 2022/06/07 13:10
- 物理学 高校物理 二次元の衝突 画像の問題の解答では、静止系での球2の速度v2を -運動エネルギー保存 -運 3 2022/11/12 00:34
- 物理学 物理の問題についてです. 6 2023/04/22 19:41
- 物理学 2物体の単振動 1 2023/08/17 20:27
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー「メソッドまたはデータ...
-
教えてください。vb5.0
-
.sub(/.+/,"aaaaaaa#{$&}"の置...
-
モジュールのメリット、デメリ...
-
get() と find() の違いについて
-
メソッド定義の際の引数で
-
変数の隠蔽とは?
-
インスタンス変数とクラス変数...
-
構造体を使ったプログラム
-
ImageButtonのマウスオーバーが...
-
プログラミングRubyについての...
-
「arg」は何の略?
-
GPRSのclassについて
-
インスタンスとオブジェクト
-
次のDelphiプログラムで
-
再帰に関する質問です。
-
ハッシュ(単語数を数える) た...
-
インスタンス内から自分のクラ...
-
ブロックつきメソッドやyield文...
-
Ruby Selenium 要素の待機
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
get() と find() の違いについて
-
エクセルVBA オートフィルタで...
-
VBAで型が一致しないエラー(バ...
-
教えてください。vb5.0
-
エラー「メソッドまたはデータ...
-
A1の値をファイル名に指定した...
-
実行時エラー450:引数の数が一...
-
Csvファイルの最終行を取得する...
-
Ruby:シルバーについて
-
クエリーストリングとは?
-
Ruby on Rails 「attr_accessor...
-
メソッド定義の構文のdefって
-
RubyでバイナリデータをIOスト...
-
.sub(/.+/,"aaaaaaa#{$&}"の置...
-
【C++】DxlibのLoadgraph()を使...
-
正規表現で両端に文字列を置換
-
RubyのDateクラスのメソッドが...
-
ruby shuffleメソッド
-
エラー・・
-
pythonのerrorコード
おすすめ情報