読者です 読者をやめる 読者になる 読者になる

golang ...演算子

...で記述される可変数関数。

これ結構便利というか知らなかったことが多かった。

そもそも、…パラメータとは??

func append(zeroValue int, value ...int)

Sum(-10, 50, 3, 10, -17)

このような関数とその呼出しがあるとします。

その場合、valueの値は[]int{50, 3, 10, -17}となります。

最後の引数がスライス型[]Tに対し、代入可能!

スライス型を使って呼び出すことも可能です!!

value := []int{50, 3, 10, -17}
Sum(-10, value...)

すげぇ。

これをうまく使うと、 appendでスライド同士の結合も可能で、 結合される側のスライスに...を付記で出来る!

num := []int{1, 2, 3, 4, 5, 99}
num = append([]int{99}, num...)

スライスの結合、地道にループしてたのですが、 この方法のがパフォーマンス的にもいいですね。

ただの可変長な引数にするだけだと思ってたので、こういう使い方ができるとは!知らんかった。。。