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

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

Susan Sarandon
發布: 2024-11-01 04:10:02
原創
750 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板