go 에는 javascript 와 같이 3dot(…) 표기법이 있다. 이는 가변인자 (갯수가 정해지지 않은 인자)를 위한 표기법이다.
함수에 parameter 로 받을때는 type 앞쪽에 3dot 로 표기하고 함수를 호출하는 쪽에서 argument 로 전달할때는 뒤에다가 3dot로 표기한다.
아래는 예제다
[code]
package main
import “fmt”
func Sum(num …int) int {
var sum int
for _, n := range num {
sum += n
}
return sum
}
func main() {
numbers := []int{2, 5, 3, 5, 9}
result := Sum(numbers…)
fmt.Println(result) // 24가 출력된다
}
[/code]