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 range演算子 「..」と「...」の違いを理解しよう

Last updated at Posted at 2024-11-13

Rubyのrange演算子には「..」(ドット2つ)と「...」(ドット3つ)の2種類があります。
これらは一見似ていますが、重要な違いがあります。この記事では、その違いと使い方について説明します。

基本的な違い

  • .. (ドット2つ): 終端を含む範囲を表す(inclusive)
  • ... (ドット3つ): 終端を含まない範囲を表す(exclusive)

具体例で見る違い

# ドット2つの場合
(1..5).to_a  # => [1, 2, 3, 4, 5]

# ドット3つの場合
(1...5).to_a # => [1, 2, 3, 4]

ご覧の通り、..を使用した場合は終端の5が含まれていますが、...を使用した場合は5が含まれていません。

数値以外での使用例

文字列の範囲でも同様の違いが見られます:

('a'..'c').to_a  # => ["a", "b", "c"]
('a'...'c').to_a # => ["a", "b"]

実用的な使用例

配列のスライシングなどで、この違いが活きてきます:

arr = [0, 1, 2, 3, 4, 5]

# インデックス1から3まで(4は含まない)
arr[1...4] # => [1, 2, 3]

# インデックス1から4まで(4を含む)
arr[1..4]  # => [1, 2, 3, 4]

注意点

  • 数値の範囲で...を使用する場合、終端の値は含まれないことに注意しましょう。
  • 文字列や日付など、連続的でないオブジェクトの範囲を扱う際は、succメソッドの挙動に注意が必要です。

まとめ

  • ..は終端を含む(inclusive)
  • ...は終端を含まない(exclusive)

適切な範囲演算子を選択することで、より明確で効率的なコードを書くことができます。
状況に応じて使い分けることが重要です。

以上が、RubyのRange演算子「..」と「...」の違いについての基本的な説明です。
この違いを理解することで、より柔軟にRangeを活用できるようになるでしょう。

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?