-
[Golang] 파라미터 ... 의미언어/Golang 2017. 1. 18. 18:05
Go 패키지를 볼 때, 아래와 같은 문법을 사용한 함수를 심심찮게 볼 수 있습니다.
func GetCommandLineMultiArgs(args ... string) { arguments := make(map[string]*string) for _, arg := range args { tempVar := flag.String(arg, "", arg) arguments[arg] = tempVar } flag.Parse() }
...의 의미는 파이썬의 *args와 유사합니다. 파라미터로 입력된 타입의 데이터를 몇 개 받을지 확실하지 않을 때 사용합니다.
아래는 String 타입의 데이터를 받는 예제입니다.
package main import "fmt" func main() { test("111") test("111","222","333") } func test(args ... String) { fmt.Println(args) } # 결과 # [111] # [111 222 333]
위와같이 슬라이스로 생성된 스트링 리스트를 반환하게 됩니다.
위에서 정의한 test()함수에 이미 존재하는 슬라이스 타입을 전달하려면 아래와 같이 선언합니다.
package main import "fmt" func main() { nums := []string{"111", "222", "333"} test(nums...) } func test(args ... String) { fmt.Println(args) } # 결과 #[111 222 333]