가변 인자를 보통 넣어서 사용시 ( ... )로 사용되는데 이를 Variadic 이라고 한다. 

예를 보자. 

func sum(numbers ...int){
    sum := 0
    for _, num := range numbers {
        sum += num
    }
    return sum
}
sum(1,2,3) //6
sum([]int{1,2,3}...) //6
sum(1) //1

Sum 함수는 int 인자값에 대한 가변적으로 가능하다. 

sum([]int{1,2,3}...) //6

의 경우 뒤에 ... 을 붙여서 할수 있는데 더 예를 보자면

func f(ids []int){
//
}
func service(id int){
    f([]int{id})
}
func service2(id []int){
    f(id)
}

위를 Variadic 을 적용해보면

func f(ids ...int){
//
}
func service(id int){
    f(id)
}
func service2(id []int){
    f(id...)
}

이렇게 타입도 가변적으로 바꿔서 넣을 수 있다. 

+ Recent posts