Ruby
1if foo.class == Hash && foo[:title] == "bar" 2 やりたい処理 3end
上記のifの条件部分を短く書きたいです。
fooにはStringやHashやArrayなどどのclassが入ってくるかわからないため、 classのチェックと同時にkey: valueのチェックを行っています。
Ruby
1if foo[:title] == "bar" 2 やりたい処理 3end
このように書くと、もしfooにHash以外のclassが入っていた場合エラーになってしまいます。
ただ、keyを指定しているのであればHashを期待してることは明らかなので、Hash以外が入っていたらエラーになるのではなくただ一致しなかっただけとして処理をしてほしい、というのが理想です。
あまりうまく伝えられていないかもですが、とにかく、
Hashかどうか、:titleの値はbarか、という二段階のチェックをもっと短く書きたいです。
何か方法は無いでしょうか。
ちなみに、どんなclassが入ってくるかわからないという設計自体がまずいですかね、という疑念が。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/15 13:16
2017/01/15 13:26
退会済みユーザー
2017/01/15 13:30
2017/01/15 13:51