기능 키를 사용한 매핑
함수를 키로 사용하여 데이터를 매핑하면 값에 액세스하는 데 유연성을 제공할 수 있습니다. 그러나 아래 그림과 같이 함수를 키로 사용하여 맵을 생성하려고 하면 오류가 발생합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!