Go by Example: [14] Variadic Functions
Variadic Functions
가변함수
라는 것은, 함수를 호출할때 불특정 다수개의 인자를 전달할 수 있는 기능입니다.
대표적인 것이, 지금까지 무심코 사용해왔던, fmt.Println()
함수 입니다.
package main
import "fmt"
func sum(nums ...int) { // [1]
fmt.Print(nums, " ")
total := 0
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
sum(1, 2) // [2]
sum(1, 2, 3)
nums := []int{1, 2, 3, 4} // [3]
sum(nums...)
}
- 정수형(
int
)인자 불특정 다수개를 인수로 처리하는 함수를 선언했습니다. (...
키워드) 가변함수
는 특정개수를 지정해서 호출하면 알아서 처리합니다.- 심지어 가변함수의 인자로 슬라이스를 전달해도 정확하게 처리하고 있습니다.
실행하면 다음과 같습니다.
$ go run variadic-functions.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10
Go
언어의 또다른 특징중 하나는 클로저(Closures
)를 언어차원에서 지원합니다.