次の多重代入の例では、変数will_not_be_used
は他の場所では参照されません。しかし、個人的には、このアプローチはシンプルで理解しやすいと思います。
これは悪い習慣と見なされますか?
useful,will_not_be_used = my_hash.detect { |key,value| value == "foo" }
次の多重代入の例では、変数will_not_be_used
は他の場所では参照されません。しかし、個人的には、このアプローチはシンプルで理解しやすいと思います。
これは悪い習慣と見なされますか?
useful,will_not_be_used = my_hash.detect { |key,value| value == "foo" }
複数の割り当てを使用して使い捨ての値を破棄することには本質的に問題はありませんが、他の構造ほど意図を明らかにしない場合があります。データまたはその使用目的に応じて、次のいずれかがより冗長になりますが、意味的には明確になります。
my_hash = {bar: "foo", baz: "quux"}
# => {:bar=>"foo", :baz=>"quux"}
my_hash.rassoc('foo').first
# => :bar
my_hash.select { |k,v| v == "foo" }.keys.first
# => :bar
my_hash.map { |key, value| key if value == "foo" }.first
# => :bar
Enumerable#detectの使用は、破棄された割り当ての使用を促進している可能性がありますが、考慮に値する他の使用例が確かにあります。ただし、特定の例では、おそらく違いはありません。