ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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]


    댓글