Go에서는 함수 인수를 이름 없이 남겨둘 수 있으므로 처음에는 혼란스러워 보일 수 있습니다. 그러나 이 기능은 여러 가지 용도로 사용되며 명확한 구문 규칙을 가지고 있습니다.
Go 사양에 따르면 ParameterDecl(매개변수 선언)은 다음과 같습니다.
ParameterDecl = [ IdentifierList ] [ "..." ] Type .
IdentifierList(식별자 이름)는 선택 사항입니다. 유형만 해당됨을 나타냅니다. 필수.
이름이 없는 인수를 사용하는 이유
이름이 없는 인수는 일반적으로 다음과 같은 시나리오에서 사용됩니다.
구문 규칙
이름이 지정된 매개변수와 이름이 지정되지 않은 매개변수를 혼합하는 것은 허용되지 않습니다. . 일부 매개변수에 이름이 지정되면 모두 이름이 지정되어야 합니다. 또는 빈 식별자(_)를 사용하여 매개변수를 참조해서는 안 됨을 나타낼 수 있습니다.
예
MyWriter 인터페이스를 고려하세요. :
type MyWriter interface { Write(p []byte) error }
데이터를 삭제하는 이 인터페이스의 구현은 다음과 같이 작성할 수 있습니다. 다음은 다음과 같습니다.
type DiscardWriter struct{} func (DiscardWriter) Write([]byte) error { return nil }
DiscardWriter 유형에는 Write 메서드에 전달된 인수를 사용하지 않기 때문에 명명되지 않은 매개 변수가 있습니다.
결론적으로, Go는 존재하지만 사용되지 않는 매개변수를 처리할 때 유연성과 명확성을 제공합니다. 이는 인터페이스 구현을 용이하게 하고, 사용되지 않는 매개변수를 문서화하며, 이전 버전과의 호환성을 유지하면서 향후 확장을 허용합니다.
위 내용은 Go에서 이름 없는 함수 인수를 사용하는 경우와 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!