【Ruby】ある文字列が、リストの中に一致するものがあるか?のやり方が分かって最高
paizaやっててシリーズ
Pythonの"in"を目指して
もともとPythonを勉強してたこともあり、条件式'in'をついついRubyでも使ってエラーを出してしまう。
word = "greate" list = ["happy", "planet", "greate"] # Python print(word in list) => True # Ruby puts w in list => SyntaxError
Pythonのこの書き方は非常に直感的で好きである。そしてRubyにはない(多分)
そこで、Rubyで同様の表現をするにはどうするのが良いかと、色々考えていて、良いのを見つけました。
word = "greate" list = ["happy", "planet", "greate"] puts list.include?(word) => true
これです!
一般化すると<配列/リスト>.include?(<調査文字列>)
配列を前側に持ってきているのがみそです。実は今までは似た方法で
word = "greate" list = ["happy", "planet", "greate"] puts list.any? { |e| e == w } => true
みたいな冗長な方法でやってました。include?メソッドは知ってましたが、アクセプターに配列をもってこれないと思いこんでいた。