Rubyを勉強中の初心者です。
Rubyで例えば
a が (b か c か d) に 該当するかどうか
はどう書くのがベストでしょうか?
初心者スキルで思いつくのは
if a == b || a == c || a == d
case a when b, c, d end
[b, c, d].include?(a)
ぐらいです。
普通はこう書くよ、といったものがあれば教えていただきたいです。
宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
既に解決済みのようですが、
Rails(またはRuby)には便利な判定メソッドがいくつかありますので参考までに紹介してみたいと思います。
・コレクションに含まれているかどうか
ruby
1"blue".in? ["red", "green", "blue"]
・コレクションが含んでいるかどうか
ruby
1["red", "green", "blue"].include? "blue"
・ハッシュのキーがあるかどうか
ruby
1h = { red: "#ff0000", geen: "#00ff00", blue: "#0000ff"} 2h.has_key? :blue
・ハッシュの値があるかどうか
ruby
1h = { red: "#ff0000", geen: "#00ff00", blue: "#0000ff"} 2h.has_value? "#00ff00"
・0かどうか
ruby
10.zero?
・0ではないかどうか
ruby
11.nonzero?
・値があるかどうか1(trut の場合 true を返す)
ruby
1"hello".present?
・値があるかどうか2(true の場合 "hello" を返す)
ruby
1"hello".presence 2コード
・値がnilまたは空欄かどうか(nil の時は false)
ruby
1"".blank?
・値が空欄かどうか(nil の時はエラー)
ruby
1"".empty?
・値がnilかどうか
ruby
1value = nil 2value.nil?
・奇数かどうか
ruby
11.odd?
・偶数かどうか
ruby
12.even?
・メソッドが存在するかどうかを調べて存在すれば実行、存在しなければnil
(次の二つの実行結果は同じ)
ruby
1( person && person.name ) || "N/A" 2person.try(:name) || "N/A"
・あるデータ型であるかどうか(例えば数値かどうか?)
(instance_of? との違いは直接の子ではなくてもその系列にいれば true になる)
ruby
11.is_a? Numeric # true 21.is_a? Fixnum # true
・あるデータ型であるかどうか(例えば数値かどうか?)
(is_a? との違いは直接の子ではない時は false になる)
ruby
11.instance_of? Numeric # false 21.instance_of? Fixnum # true
・全てtrueかどうか
ruby
1["red", "green", "blue"].all? { |color| color.include "e" }
・どれか一つでもtrueかどうか
["red", "green", "blue"].all? { |color| color.include "g" }
投稿2015/07/22 08:33
総合スコア27
0
ベストアンサー
挙げたので充分じゃないかなぁ。もちろん b などの属するクラスによって書き方が変わってくると思います。
個人的には
lang
1[b, c, d].any? { |item| item == a }
が好きですけどね。
Ruby は一つのことに対していろいろな書き方が出来るのが良い点だと思いますので、正解は一つじゃないと思います。そしてそれぞれの正解にはさまざまな理由があるでしょう。「速い」「分かりやすい」「使い慣れてる」。
「普通はこう書く」というのは、回答者が「使い慣れてる」程度であって、万人にとっての正解ではないと思います。なので、ご自身で思いついたメソッドや書き方を使っていき、「ここがいい」「ここがイマイチ」というのを見出すのが一番良いと思います。
投稿2015/04/25 04:01
総合スコア241
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。