Ruby で複文を書く方法
Ruby では「( )」で複文が書けるそうな。
つまり、(statement; statement; statement) みたいなことができるらしい。
括弧の中で改行があるとそれは独立した式とみなされます。括弧の中でも改行はセミコロンを置いたのと同じ意味になります。
Re: 複数行にわたる式の評価
実際にやってみた。
### 文をセミコロンで区切る irb> (puts 123; puts "foo"; puts true) 123 foo true => nil ### 文を改行で区切る irb> (puts 456 >> puts "bar" >> puts false >> ) 456 bar false => nil
ほんまやー!
みんな知ってた? 自分は全然知らんかった。
もしかして、今までこんな感じで書いていたのが
found = false while line = gets() if line =~ pattern found = true break end end
1 行にまとめてこう書けるということか?
found = false while line = gets() (found = true; break) if line =~ pattern end
うへー、知らんかった。
便利っちゃあ便利だけど・・・微妙。間違った '(' を書いてしまったら、syntax error が見つけにくいだろうなあ。ないほうがいいような気はする。少なくとも、改行が「;」と同じ扱いになるという仕様は、間違い探しがしにくくなるので廃止したほうがいいと思う。