Go 언어에서는 제공된 매개변수 없이 가변 함수의 사용을 허용하지만 이러한 시나리오를 방지하는 것이 바람직할 수 있습니다. 호출자 코드의 잠재적인 버그로 간주합니다. 그러나 컴파일 타임 오류로 이를 달성하는 것은 언어에서 직접 지원되지 않습니다.
이 제한을 극복하려면 다음을 포함하도록 함수의 서명을 수정할 수 있습니다. 비가변 매개변수와 가변 매개변수 둘 다. 이 접근 방식을 사용하면 함수 호출 중에 하나 이상의 매개 변수가 제공됩니다. 예:
func min(first int, rest ...int) int { // Implement your logic here return 0 }
이 서명을 사용하면 min 함수를 다음과 같이 호출할 수 있습니다.
min(1) // Valid min(1, 2) // Valid min(1, 2, -3) // Valid
그러나 없이 함수를 호출하려고 하면 인수를 사용하면 컴파일 시간 오류가 발생합니다.
min() // Error: not enough arguments in call to min
최소 두 개의 인수를 제공해야 하는 경우 함수 서명을 추가로 수정할 수 있습니다.
func min(first, second int, rest ...int) int { // Implement your logic here return 0 }
이 기술은 조항을 효과적으로 시행합니다. 하나 이상의 매개변수에 대해 균형을 맞추는 것이 중요합니다. 특히 사전 정의된 슬라이스로 함수를 처리하면 아래와 같이 호출 코드에 추가 단계가 도입될 수 있습니다.
s := []int{1, 2, -3} fmt.Println(min(s[0], s[1:]...))
함수 서명을 수정할 수 없는 경우 런타임 패닉이 발생합니다. 또는 매개변수가 제공되지 않는 경우를 처리하기 위해 종료 메커니즘을 사용할 수 있습니다. 그러나 이 접근 방식은 컴파일을 막을 수 없으며 실행 단계에서 적절한 처리가 필요합니다.
위 내용은 Go의 Variadic 함수에서 매개변수 준수를 어떻게 적용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!