2006-03-04
■ [ruby] Rangeリテラルは括弧で囲んだ方がいい
「0<=min && min <= 5」のつもりで
if 0..5 === min
とか書いてちょっとはまった. *1
「..」の方が優先順位が低いので, 上のは
if 0..(5 === min)
のように解釈されてしまう.だから,
if (0..5) === min
のように明示的に括弧を指定するのが正解.
ていうか,検索したらいくつか出てくるな (google:ruby range 優先順位). 確かに括弧を書いた方が読みやすい気もするのだが,それを推奨するためにわざとこういう優先順位になっている のだろうか?
*1 ちなみにこれは (0..5).include? min と同じ意味.