はじめに
プログラミング学習中に出会った、
selectメソッドとinclude?メソッドについて簡単にまとめました。
そしてこの2つのメソッドを使って簡単な検索機能の実装します。
selectメソッド
配列やハッシュなどから、ある条件にあった要素だけを取り出します。
例1 色が入ったリストからある条件にあう要素のみ取り出す
list = [ "blue", "red", "yellow" ]
color = list.select do |x|
x == "red"
end
puts color
# redが書き出される
例2 do-endを使わずに書く
list = [ "blue", "red", "yellow" ]
color = list.select{|x| x == "red" }
puts color
# redが書き出される
string#include?メソッド
文字列の中に指定した文字列(引数で指定)が含まれているか確認できます。
含まれていればtrueを、なければfalseを返します。
例 文字列の中に引数に指定した文字列が含まれているか確認
color = "red"
puts color.include?("e")
# 文字列"red"の中に"e"が含まれているため、trueが返される
2つのメソッドを利用して検索機能を持った簡易アプリを作る
list = [ "blue", "red", "yellow" ]
puts "blue"
puts "red"
puts "yellow"
puts "3色のうち好きな色を入力してください"
index = gets.chomp
# ユーザーの入力
color = list.select{ |x| x.include?(index)}
# index(入力された文字列)を含む要素を取り出して変数に入れる。
puts color
# 入力した文字列を含む色が書き出される。
# 「e」と入力すれば「blue」「red」「yellow」全て書き出される
補足 Array#include?メソッド
上記で紹介したinclude?メソッドは文字列の中に要素が含まれるか確認するメソッドでした。
これは、文字列に関するオブジェクトを提供するStringクラスに定義されているメソッドです。
include?メソッドは、Arrayクラスにも定義されています。
こちらは配列の中に引数にて指定する要素が含まれるか確認できるメソッドです。
例 配列の中に引数に指定した要素が含まれているか確認
list = [ "blue", "red", "yellow" ]
color = list.include?("red")
puts color
# 配列の中に"red"が含まれるため、trueが返される
まとめ
selectメソッドは条件にあった要素を取り出し、
include?メソッドは、指定した文字列が対象に含まれるかを確認します。
これにユーザーの入力機能を組み合わせることで検索機能を実装できました。