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

我最近遇到了一个通过直接索引进行图形处理的库,即graph[key]我有一个节点树,它的子节点位于某个属性下node.childs[key]

我想知道是否有一种方法可以定义类型,以便可以通过直接键映射访问属性,例如node[key]映射到node.childs[key]. 有没有办法在定义新类型时实现这一点?


饮歌长啸
浏览 98回答 1
1回答

素胚勾勒不出你

不,不可能做你想做的事。规范不允许。规范:索引表达式:形式的主要表达a[x]a表示数组的元素,指向由 索引的数组、切片、字符串或映射的指针x。该值分别x称为index或map key。以下规则适用:对于数组类型a:[...] A对于指向数组类型a的指针:[...]对于切片类型a:[...] S对于字符串类型a:[...]对于地图类型a:[...] M对于类型参数类型a:[...] P否则a[x]是非法的。只有这些列出的类型是可索引的,没有其他。而且您甚至无法更改索引运算符的含义(您无法覆盖它)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go