Rubyで3つの変数がすべて等しいことを保証する最も簡潔な方法は何ですか? 例えば
dog = 'animal'
cat = 'animal'
chicken = 'animal'
shoe = 'clothing'
# Something like this...which doesn't work
dog == cat == chicken # true
dog == cat == shoe # false
Rubyで3つの変数がすべて等しいことを保証する最も簡潔な方法は何ですか? 例えば
dog = 'animal'
cat = 'animal'
chicken = 'animal'
shoe = 'clothing'
# Something like this...which doesn't work
dog == cat == chicken # true
dog == cat == shoe # false
3 つの要素の最も簡潔な方法は次のとおりです (がっかりさせて申し訳ありません)。
dog == cat && cat == chicken
もちろん、必要に応じていつでも賢くなれます...
[dog, cat, chicken] == [dog] * 3
[dog, cat, chicken].uniq.length == 1
...しかし、それは実際にはコードをより簡潔にする (または読みやすくする) わけではありません。
任意の数の要素が等しいかどうかを比較できる再利用可能な関数が必要な場合は、次のようにします。
def all_equal?(*elements)
elements.all? { |x| x == elements.first }
end
dog == cat && dog == chicken