Go의 사용하지 않는 함수 매개변수에 대한 허용: 디자인의 문제
C와 달리 Go에서는 사용하지 않는 변수가 포함된 프로그램을 컴파일하는 것을 금지합니다. 그러나 사용되지 않는 함수 매개변수의 허용에 관한 의문이 제기됩니다. 이러한 명백한 불일치 뒤에 있는 이유를 자세히 살펴보겠습니다.
처음에는 Go에서 사용되지 않는 매개변수가 있는 함수의 컴파일을 허용하는 것이 직관에 반하는 것처럼 보일 수 있습니다. 그러나 언어 설계자들은 이러한 결정을 내리게 된 특별한 동기를 갖고 있었습니다. Go 커뮤니티 내 토론에 따르면 이는 사용되지 않는 변수와 사용되지 않는 함수 매개변수 간의 근본적인 차이에서 비롯됩니다.
사용하지 않는 변수는 프로그래밍 오류로 간주되는 경우가 많지만 항상 활용되지 않는 인수로 함수를 선언하는 것이 일반적인 관행입니다. . 이러한 경우 인수에 밑줄(_)을 사용하여 이름을 지정하지 않으면 혼란이 발생할 수 있습니다. 특히 func foo(_, _ int)와 같이 인수를 사용하지 않는 함수의 경우 더욱 그렇습니다.
사용하지 않는 매개변수 이름은 기능에 대한 추가적인 맥락과 의도를 제공하는 중요한 문서입니다. 이는 인터페이스를 구현할 때 특히 중요합니다. 예를 들어, 그래프에서 작동하는 함수는 예제 func (graph *MyGraph) Distance(node1, node2 Node) int {...}에 표시된 것처럼 가장자리 간 거리를 계산할 때 노드를 고려할 필요가 없을 수 있습니다.
미사용 시 _라는 인수를 금지하는 또 다른 가능한 솔루션은 Go 언어의 향후 호환성 보장으로 인해 궁극적으로 기각되었습니다. 또한 사용되지 않는 매개변수라도 암시적 문서를 제공하여 코드의 검색 가능성과 가독성을 지원할 수 있습니다.
본질적으로 사용되지 않는 함수 매개변수를 허용하는 결정은 문서화, 일반적인 프로그래밍 방식, 일관성과 같은 요소에 따라 결정되는 설계 선택입니다. 언어의 다른 측면과 함께. 단 하나의 결정적인 이유는 없을 수 있지만, 이 선택의 근거는 Go의 디자인 철학을 형성하는 미묘한 사고 과정을 강조합니다.
위 내용은 Go가 사용되지 않는 변수를 금지하면서 사용되지 않는 함수 매개변수를 허용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!