はじめに
progateでRubyを勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
本書ではfirstメソッドやlastメソッドについて軽く触れられていただけだったのでもう少し深堀してまとめてみたいと思い記事にしました。
環境:ruby 3.3.5
firstメソッドとlastメソッドとは
これらを説明する前に、まずは簡単に配列(array)について説明したいと思います。
alcohols = ["ウイスキー","ラム","ジン"]
puts alcohols[0]
# ウイスキー
配列は上記でいうとalcoholsを指し、[]の中の1つ1つを要素といいます。
ウイスキーを出力したい場合はalcohols[0]のように[]の中に数字を指定します。
左から0,1,2と出力しますが最初は1ではなく0なので注意してください。
さて、ここまでで配列について説明したのでfirst・lastメソッドについてみましょう
alcohols = ["ウイスキー","ラム","ジン"]
puts alcohols.first
puts alcohols.last
# ウイスキー
# ジン
firstは配列の最初の要素を、lastは配列の最後の要素を取得することができます。
firstやlastはどのような場面で使用するの
用途はわかったけど、firstであればalcohols[0]、lastであればalcohols[2]とすれば解決では?と思います。
alcohols[0]のような数字の指定ではなく、これらを使うメリットを上げてみました
- 可読性が上がる
- first(n)やlast(n)で複数選択できる
- 最新の情報を追うことができる(lastのみ)
可読性が上がる
これはそこまで説明しなくてもいいですが、たとえばalcohols[2]であれば要素が3つと知らなければalcohols配列の最後の要素かわかりません。
一方alcohols.lastを使用すれば要素の数を確認しなくても最後の要素であることが瞬時にわかります
first(n)やlast(n)で複数選択できる
first(n)やlast(n)を使うことで、配列の最初または最後から複数の要素を取得できます。
drinks = ["カフェラテ", "コーヒー", "エスプレッソ", "紅茶"]
# 最初の2つの要素を取得
puts drinks.first(2) # => ["カフェラテ", "コーヒー"]
# 最後の2つの要素を取得
puts drinks.last(2) # => ["エスプレッソ", "紅茶"]
最新の情報を追うことができる(lastのみ)
例えば、alcohols配列に世界中で販売されているお酒の種類がlogとして記録されるとします(そんなシステムあったら面白い)
その際にalcohols[2]だと随時更新されてしまうのでalcohols.lastを使用することで最新のログを追うことができます。
ただし、これに関してはlastだけでなく、alcohols[-1]でも同様に意味なので付随的な用途として覚えておいて損はないと思います。
まとめ
本日はfirstメソッドとlastメソッドの用途について説明しました。
- 可読性が上がる
- first(n)やlast(n)で複数選択できる
- 最新の情報を追うことができる(lastのみ)
こういったメリットがありますが、alcohols[1]と指定して出力するのも当然便利な機能なので用途ごとに使い分ける必要があると思いました