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の「*」記号ってなんなの、という疑問について調べた

Posted at

Rubyにおいて、「*」記号は以下の用途で使われます

数値の乗算

Rubyでは、他の多くのプログラミング言語と同様に、「*」記号は数値の乗算に使用されます。

result = 3 * 4  # resultは12になります

配列の繰り返し

「*」記号を使って、配列内の要素を指定した回数だけ繰り返すことができます。

repeated_array = [1, 2, 3] * 3  # repeated_arrayは[1, 2, 3, 1, 2, 3, 1, 2, 3]になります

文字列の繰り返し

「*」記号を使って、文字列を指定した回数だけ繰り返すこともできます。

repeated_string = "abc" * 2  # repeated_stringは"abcabc"になります

可変長引数

メソッド定義において、引数の前に「*」を付けることで、任意の数の引数を受け取ることができます。
これは「スプラット演算子」とも呼ばれます。可変長引数については別途まとめを作成する予定です。

def sum(*numbers)
  numbers.reduce(0, :+)
end
sum(1, 2, 3)  # 6を返します

配列展開

配列の要素を個別の引数や別の配列の要素として展開する際にも「*」を使用します。

a = [1, 2, 3]
b = [-1, 0, *a, 4, 5]  # bは[-1, 0, 1, 2, 3, 4, 5]になります

応用的な使い方

配列の要素の分割

配列を「*」を使って部分的に分割することができます。

first, *middle, last = [1, 2, 3, 4, 5]
# firstは1、middleは[2, 3, 4]、lastは5になります

複数の配列の結合

複数の配列を「*」を使って結合することもできます。

a = [1, 2]
b = [3, 4]
c = [*a, *b]  # cは[1, 2, 3, 4]になります

まとめ

「*」は便利な記号ですが、初心者には使いにくさがあるのかなと思いました。
柔軟な活用方法があるため、可読性を持ちながら実装をしていくのが良いと思いました。

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?