我愿意在 go 中创建 c++ stl。有没有办法创建自定义结构来实现索引访问的括号语法?
假设这是我的数组类型:
type Array[T any] struct { values []T }
有什么方法可以添加括号语法索引而不是 array.at()
或任何其他?
我希望能够使用 array[4]
而不是 array.at(4)
访问 f.e 索引 4。
如何实现这一目标?
没有。从 Go 1.19 开始,Go 不支持运算符重载(这是您所要求的内容的通用名称 - []
是您想要重载的特定运算符)。
请参阅常见问题解答:
关于运算符重载,它看起来更像是一种方便,而不是绝对的要求。同样,如果没有它,事情会变得更简单。