Go의 선택적 매개변수

Jay Singh 2023년1월30일 Go Go Variadic
  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
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다

관련 문장 - Go Variadic