Golang의 무한 매개변수 함수는 이 함수가 다양한 수의 매개변수를 받아들일 수 있다는 것을 의미합니다. 함수를 정의할 때 세 개의 점 "..."을 사용하여 매개변수의 수가 고정되어 있지 않으며 이러한 매개변수가 하나의 조각으로 압축된다는 것을 나타낼 수 있습니다.
Golang에서는 함수의 매개변수 목록에 변수 매개변수가 하나만 있을 수 있으며, 일반적으로 매개변수 목록 끝에 배치됩니다.
예를 들어 다음은 임의 개수의 정수의 합을 계산하는 함수입니다.
func sum(nums ...int) int { total := 0 for _, num := range nums { total += num } return total }
함수 시그니처에서 세 개의 점 "..."은 부정 매개변수를 나타내는 데 사용되며 매개변수 이름은 "nums"입니다. 데이터 유형은 "int"이므로 "nums"는 실제로 정수 조각입니다.
이 함수를 호출할 때 매개변수 개수를 지정하지 않고 원하는 개수의 정수를 매개변수로 전달할 수 있습니다.
fmt.Println(sum(1, 2, 3)) // 输出 6 fmt.Println(sum(10, 20, 30, 40)) // 输出 100
무한 매개변수 함수는 매우 유연하며 다양한 유형과 개수의 매개변수를 처리할 수 있습니다. 다음은 두 개 또는 세 개의 부동 소수점 숫자의 평균을 계산하는 예입니다.
func avg(nums ...float64) float64 { sum := 0.0 for _, num := range nums { sum += num } return sum / float64(len(nums)) } fmt.Println(avg(1.0, 2.0)) // 输出 1.5 fmt.Println(avg(1.0, 2.0, 3.0)) // 输出 2.0
Go 언어에서는 변수 매개변수도 함수 호출 시 매개변수 전달 순서를 따라야 한다는 점에 유의해야 합니다. 예를 들어, 다음 예에서 매개변수가 반전되면 함수는 오류를 보고합니다.
func foo(num int, strs ...string) { fmt.Println(num) fmt.Println(strs) } foo("hello", "world", 1) // 报错!第一个参数应该是整数类型
함수 내에서 for 루프를 사용하여 무한 매개변수를 반복하고 그 안의 각 요소를 슬라이스 작업처럼 처리할 수 있습니다. . 변수 매개변수를 처리한 후 len() 함수를 사용하여 변수 매개변수의 수를 얻을 수도 있습니다.
한마디로 Golang에서 가변 매개변수 기능은 프로그램의 유연성과 실용성을 크게 향상시킬 수 있으며, 불확실한 숫자와 유형의 매개변수를 처리하는 데 매우 편리하고 빠릅니다.
위 내용은 golang 변수 매개변수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!