0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】firstメソッド、lastメソッドの使い道

Last updated at Posted at 2024-10-09

はじめに

progateでRubyを勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
本書ではfirstメソッドやlastメソッドについて軽く触れられていただけだったのでもう少し深堀してまとめてみたいと思い記事にしました。

環境:ruby 3.3.5

firstメソッドとlastメソッドとは

これらを説明する前に、まずは簡単に配列(array)について説明したいと思います。

array1.rb
alcohols = ["ウイスキー","ラム","ジン"]
puts alcohols[0]
# ウイスキー

配列は上記でいうとalcoholsを指し、[]の中の1つ1つを要素といいます。
ウイスキーを出力したい場合はalcohols[0]のように[]の中に数字を指定します。
左から0,1,2と出力しますが最初は1ではなく0なので注意してください。

さて、ここまでで配列について説明したのでfirst・lastメソッドについてみましょう

array2.rb
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)を使うことで、配列の最初または最後から複数の要素を取得できます。

array3.rb
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]と指定して出力するのも当然便利な機能なので用途ごとに使い分ける必要があると思いました
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?