Go의 선택적 매개변수

Jay Singh 2023년1월30일
  1. variadic 함수를 사용하여 Go에서 선택적 매개변수 전달
  2. variadic 함수를 사용하여 Go에서 여러 문자열 전달
Go의 선택적 매개변수

variadic 함수는 호출될 때 다양한 수의 인수를 갖습니다. 0개 이상의 인수와 함께 사용할 수 있습니다.

생략 부호 ...는 매개변수 앞에 변수 함수를 정의할 수 있습니다.

variadic 함수를 사용하여 Go에서 선택적 매개변수 전달

이 함수는 입력으로 ints 수를 허용합니다. 슬라이스에 이미 많은 args가 있는 경우 func(slice...)를 사용하여 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}
	sum(nums...)
}

출력:

[1 2] 3
[1 2 3] 6
[1 2 3 4] 10

variadic 함수를 사용하여 Go에서 여러 문자열 전달

s 매개변수에 제공되는 매개변수의 수에는 제한이 없습니다. 트리 점으로 구분된 줄임표는 이 문자열이 0에서 많은 값을 가질 수 있음을 컴파일러에 알립니다.

package main

import "fmt"

func main() {
	variadic()
	variadic("white", "black")
	variadic("white", "black", "blue")
	variadic("white", "black", "blue", "purple")
}
func variadic(s ...string) {
	fmt.Println(s)
}

출력:

[]
[white black]
[white black blue]
[white black blue purple]

사람들의 이름이 함수에 제공될 때 사람들에게 인사하는 프로그램을 만들어 보겠습니다.

package main

import "fmt"

func main() {
	sayHello()
	sayHello("Jay")
	sayHello("Jessica", "Mark", "Jonas")
}

func sayHello(names ...string) {
	for _, n := range names {
		fmt.Printf("Hello %s\n", n)
	}
}

출력:

Hello Jay
Hello Jessica
Hello Mark
Hello Jonas

관련 문장 - Go Variadic