메뉴

문서정보

예제로 살펴보는 Go : Variadic Functions

Variadic Function은 변수의 개수가 가변적인 함수를 의미한다. 예를들어 fmt.Println가 대표적인 Variadic 함수다.
package main

import "fmt"

func sum(nums ...int) {
    fmt.Print(nums, " ")
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}

func main() {
    sum (1,2)
    sum (1,2,3)
    
    nums := []int{1,2,3,4,5}
    sum(nums...)
}
	
		
예제 코드에 있는 sum 함수를 보자. 이 sum 함수는 여러 개의 매개변수를 받아서 더하고 그 결과를 출력하는 일을 한다. 여러개의 변수를 받는 방법은 간단하다. 데이터 타입 앞에 "..."을 붙여주기만 하면 된다. sum 함수내에서 매개변수는 슬라이스로 처리하면 된다.

15, 16에 sum 함수의 사용 코드를 보자. 매개변수의 개수에 신경쓰지 않고 자유롭게 입력 할 수 있다. Variadic 함수에서 매개변수는 슬라이스로 다루기 때문에, 19 줄에서 처럼 슬라이스를 직접 사용해도 된다.

연습문제

슬라이스를 매개변수로 입력 받아서, 이 중 최소 값을 출력하는 min 함수를 완성하라.
package main

import "fmt"

func min(nums ...int) {
    
}

func main() {
    nums := []int{5,1,7,8,3,9}
    min(nums...)
}
	
		
다음 예제 : Closures