与えられた:
array = {first: {second: {one: 1, two: 2, three: 3 }}}
何でもできると仮定するとnil
、nil につまずくことなくネストされた値にアクセスする最も簡単で簡潔な方法は何でしょうか? メンバーのいずれかが存在しない場合は、 を返すだけnil
です。
私たちはこれらを思いつきました:
ピュア ルビー:
value = array.fetch(:first, {}).fetch(:second, {}).fetch(:four, nil)
value = begin array[:first][:second][:four]; rescue; end
ルビー・オン・レール:
value = array.try(:[], :first).try(:[], :second).try(:[], :four)
あなたは何を思いつくことができますか?あなたはどちらの方法を好みますか、またその理由は何ですか?
ありがとう!