首页  >  文章  >  后端开发  >  函数可以用作 Go Map 中的键吗?

函数可以用作 Go Map 中的键吗?

Susan Sarandon
Susan Sarandon原创
2024-11-01 04:10:02646浏览

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