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