使用功能鍵映射
使用函數作為鍵映射資料可以提供存取值的彈性。但是,嘗試使用函數作為鍵建立地圖(如下所示)會導致錯誤:
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 Map 中的鍵嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!