Rubyにおいて、
"もし配列arrayに要素が存在する(nil,falseは要素に無い)ならば、hogeメソッドを実行する"
という処理を書くとき以下のような書き方が考えられると思います。
ruby
1# 1 2hoge if array.any? 3 4# 2 5hoge unless array.empty? 6 7# 3 8hoge if !array.empty?
好みの問題かもしれませんが、どの書き方がよいでしょうか?
判断のポイントは
unless
よりもif
の方が直感的に読みやすい- 否定
!
をつけると直感的に読みづらくなる empty?
は要素の数が0という特別な場合を判定するため、積極的に使うべきany?
は厳密にはempty?
の逆ではなく、nil,falseが要素に存在する場合もfalse(要素が存在しない)の判定になる。そのため読む人に曖昧性を与えてしまう
参考:Ruby の empty? の逆は any? ではない - Qiita
あたりが考えられると思います。
私は2がいいかなと思っているのですが、どうでしょうか?
上の3つ以外に他にもよい書き方があれば教えてください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/22 08:06 編集
2018/09/22 08:12
2018/09/22 08:28