ヨージとプログラミング

プログラミング勉強の記録

【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?メソッドは知ってましたが、アクセプターに配列をもってこれないと思いこんでいた。