>백엔드 개발 >Golang >Go Maps에서 함수를 키로 사용할 수 있나요?

Go Maps에서 함수를 키로 사용할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 04:10:02736검색

Can Functions Be Used as Keys in Go Maps?

기능 키를 사용한 매핑

함수를 키로 사용하여 데이터를 매핑하면 값에 액세스하는 데 유연성을 제공할 수 있습니다. 그러나 아래 그림과 같이 함수를 키로 사용하여 맵을 생성하려고 하면 오류가 발생합니다.

type Action func(int)
func test(a int) { }
func test2(a int) { }

func main() {
  x := map[Action]bool{}
  x[test] = true
  x[test2] = false
}

오류: 잘못된 맵 키 유형 작업

언어 제한

Go 언어 사양에는 함수를 맵 키로 사용할 수 없다고 명시되어 있습니다. 이러한 제한은 키가 동등 비교와 같은 연산자를 지원해야 한다는 요구 사항에서 비롯되며 이는 함수에서는 불가능합니다.

The comparison operators == and != must be fully defined for operands of the key type; thus the key type must not be a function, map, or slice.

따라서 키 비교의 일관성을 보장하기 위해 언어에서는 함수를 맵 키로 사용하는 것을 허용하지 않습니다. 잠재적인 오류를 방지합니다.

위 내용은 Go Maps에서 함수를 키로 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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