親と ;
仕事:
irb(main):018:0> foo = true ? (a=:a ; b=:b) : :foo
=> :b
irb(main):019:0> a
=> :a
irb(main):020:0> b
=> :b
irb(main):021:0>
,
これはステートメントセパレータではないことに注意してください。
irb(main):001:0> a=:a, b=:b
=> [:a, :b]
irb(main):002:0> a
=> [:a, :b]
irb(main):003:0> b
=> :b
irb(main):004:0>
A;
はステートメントセパレータです。
irb(main):004:0> a=:a; b=:b
=> :b
irb(main):005:0> a
=> :a
irb(main):006:0> b
=> :b
irb(main):007:0>
しかし、インタプリタはステートメントセパレータを探していないので、これはすぐには役に立ちません-:だけ:
です
irb(main):014:0> foo = true ? a=:a, b=:b : :foo
SyntaxError: (irb):14: syntax error, unexpected ',', expecting ':'
foo = true ? a=:a, b=:b : :foo
...
Parens,
はエラーをスローしませんが、期待どおりに機能しません。
irb(main):021:0> foo = true ? (a=:a , b=:b) : :foo
=> [:a, :b]
irb(main):022:0> a
=> [:a, :b]
irb(main):023:0> b
=> :b
irb(main):024:0>
私はうまくいくと思っていdo .. end
ましたが、それも失敗します:
irb(main):024:0> foo = true ? do a=:a ; b=:b end : :foo
SyntaxError: (irb):24: syntax error, unexpected keyword_do
foo = true ? do a=:a ; b=:b end : :foo
...