为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在 golang 中定义可索引类型?

有没有办法在 golang 中定义可索引类型?

Go
饮歌长啸 2023-01-03 11:21:45
我最近遇到了一个通过直接索引进行图形处理的库,即graph[key]我有一个节点树,它的子节点位于某个属性下node.childs[key]。我想知道是否有一种方法可以定义类型,以便可以通过直接键映射访问属性,例如node[key]映射到node.childs[key]. 有没有办法在定义新类型时实现这一点?
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

不,不可能做你想做的事。规范不允许。规范:索引表达式:

形式的主要表达

a[x]

a表示数组的元素,指向由 索引的数组、切片、字符串或映射的指针x。该值分别x称为indexmap key。以下规则适用:

对于数组类型a:[...] A

对于指向数组类型a的指针:[...]

对于切片类型a:[...] S

对于字符串类型a:[...]

对于地图类型a:[...] M

对于类型参数类型a:[...] P

否则a[x]是非法的。

只有这些列出的类型是可索引的,没有其他。而且您甚至无法更改索引运算符的含义(您无法覆盖它)。


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信