>백엔드 개발 >Golang >왜 Go에서는 사용되지 않는 함수 매개변수를 허용하지만 다른 언어에서는 허용하지 않습니까?

왜 Go에서는 사용되지 않는 함수 매개변수를 허용하지만 다른 언어에서는 허용하지 않습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-18 06:39:10729검색

Why Does Go Allow Unused Function Parameters While Other Languages Don't?

Go에서 사용되지 않는 함수 매개변수

지역 변수와 달리 Go에서는 사용되지 않는 함수 매개변수가 포함되어 있어도 컴파일러가 프로그램을 빌드할 수 있습니다. 이 동작은 사용되지 않은 변수로 인해 컴파일 오류가 발생하는 C와 같은 언어와 다릅니다.

이에 대한 이유는 논쟁의 여지가 있습니다. 그러나 golang-nuts에 대한 토론에서 설명했듯이 이는 다음과 같은 믿음에서 비롯됩니다.

  • 사용하지 않는 변수는 본질적으로 프로그래밍 오류입니다.
  • 사용하지 않는 인수로 함수를 정의하는 것이 일반적입니다. .

사용되지 않는 매개변수는 필수 문서를 제공하여 함수 내에서 명시적으로 사용되지 않더라도 이해를 돕습니다. 예:

func foo(param_a int, param_b int) int {
    return param_a
}

param_b가 사용되지 않더라도 그 존재는 함수의 의도를 전달합니다. 이는 다음과 같은 경우에 특히 유용합니다.

func Distance(node1, node2 Node) int {
    return 1
}

여기서 거리는 모든 가장자리에 걸쳐 균일한 비용을 갖는 가중치 그래프에서 작동합니다. 노드는 활용되지 않지만 함수의 목적을 명확하게 하고 문서화하는 데 필수적입니다.

어떤 사람들은 밑줄(_)로 명명된 사용되지 않는 매개변수만 허용해야 한다고 주장하지만, 이러한 변경은 Go의 변경 사항과 충돌할 수 있습니다. 미래 호환성 보장. 또한, 함수 내에서 활용되지 않음에도 불구하고 사용되지 않는 매개변수는 귀중한 문서를 제공할 수 있다는 주장이 있습니다.

궁극적으로, 사용되지 않는 함수 매개변수를 허용하는 결정은 유용성과 유용성 사이의 인식된 균형을 기반으로 하는 실용적인 결정입니다. 프로그래밍 오류. 구체적인 근거는 명시적으로 문서화되지 않을 수 있지만 Go의 소프트웨어 개발의 실제 현실에 기초를 두고 있습니다.

위 내용은 왜 Go에서는 사용되지 않는 함수 매개변수를 허용하지만 다른 언어에서는 허용하지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.