首頁  >  文章  >  後端開發  >  函數可以用作 Go Map 中的鍵嗎?

函數可以用作 Go Map 中的鍵嗎?

Susan Sarandon
Susan Sarandon原創
2024-11-01 04:10:02639瀏覽

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 Map 中的鍵嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn