Rubyで3つの整数値を比較する方法はあまり控えめですか?PythonとRuby:yはxより大きくzより小さいか?
例えば、Pythonで真次の戻り:Rubyで同じ変数バインディングで
x = 2
y = 3
z = 4
x < y < z
以下は、両方のtrueを返します:
x < y && y < z
x.send(:<, y) && y.send(:<, z)
が、この:
x < y < z
はNoMethodErrorを返します。
NoMethodError: undefined method `<' for true:TrueClass
これは、x < y
の最初の比較がtrue
と評価され、結果としてTrueClass.instance < z
からエラーが発生したためです。 Rubyで、& &を使用せずに3つの整数値を比較する方法はありますか?
ありがとうございます。 x
、y
とz
が数値であるため、
Rubyのコード作成の教訓の1つは、読みやすく、効率的なやり方がある場合には、表現が行き渡らないようにすることです。 Rubyは古いスタイルのCやPerlではなく、人手で作成するのが難しくなっています。 'x