質問: Rubyにおいて、 "もし配列arrayに要素が存在する(nil,falseは要素に無い)ならば、hogeメソッドを実行する" という処理を書くとき以下のような書き方が考えられると思います。 ``` # 1 hoge if array.any? # 2 hoge unless array.empty? # 3 hoge if !array.empty? ``` 好みの問題かもしれませんが、どの書き方がよいでしょうか? 判断のポイントは * `unless`よりも`if`の方が直感的に読みやすい * 否定`!`をつけると直感的に読みづらくなる * `empty?`は要素の数が0という特別な場合を判定するため、積極的に使うべき * `any?`は厳密には`empty?`の逆ではなく、nil,falseが要素に存在する場合もfalse(要素が存在しない)の判定になる。そのため読む人に曖昧性を与えてしまう 参考:Ruby の empty? の逆は any? ではない - Qiita あたりが考えられると思います。 私は2がいいかなと思っているのですが、どうでしょうか? 上の3つ以外に他にもよい書き方があれば教えてください。
回答: こちらのページ では2つ目の ``` unless array.empty? ``` の書き方が載っています。