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ランキング
-
ビーリアルのユーザー名を変え...
-
pandasでsqlite3にテーブル作成...
-
パソコンのスクリーンセーバー...
-
pythonエラー
-
パイソンのクラスについて
-
クリスタルレポートで困ってい...
-
こういう問題分をよんだとき
-
教えてください
-
パイソンでテキストファイルが...
-
【メモリ不足で落ちる(python)】
-
三項でたとえば交換って
-
WinSCPで画像のように puttyを...
-
なんで if __name__ == "__main__"
-
ぱいソン
-
パイソンのクラスについて
-
プログラミング
-
プログラミングについてです。...
-
Gitのクローンについて
-
pythonのerrorコード
-
VBA
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
get() と find() の違いについて
-
エラー「メソッドまたはデータ...
-
教えてください。vb5.0
-
VBAで型が一致しないエラー(バ...
-
実行時エラー450:引数の数が一...
-
エクセルVBA オートフィルタで...
-
メソッド定義の構文のdefって
-
Csvファイルの最終行を取得する...
-
A1の値をファイル名に指定した...
-
Pythonで複数のメソッドをまと...
-
RubyでバイナリデータをIOスト...
-
Rubyでnet::httpを用いてPOSTする
-
VBからAccessのデータベースを...
-
define_singleton_methodについて
-
RubyのDateクラスのメソッドが...
-
Ruby:シルバーについて
-
pythonで、構文エラー
-
Pythonでcall_user_funcを行う
-
【Ruby on Rails】モデルのメソ...
-
.sub(/.+/,"aaaaaaa#{$&}"の置...
おすすめ情報