首页 > 文章列表 > Go 中自定义结构类型的语法使用括号

Go 中自定义结构类型的语法使用括号

295 2024-03-01
问题内容

我愿意在 go 中创建 c++ stl。有没有办法创建自定义结构来实现索引访问的括号语法?

假设这是我的数组类型:

type Array[T any] struct {
    values []T
}

有什么方法可以添加括号语法索引而不是 array.at() 或任何其他? 我希望能够使用 array[4] 而不是 array.at(4) 访问 f.e 索引 4。

如何实现这一目标?


正确答案


没有。从 Go 1.19 开始,Go 不支持运算符重载(这是您所要求的内容的通用名称 - [] 是您想要重载的特定运算符)。

请参阅常见问题解答

关于运算符重载,它看起来更像是一种方便,而不是绝对的要求。同样,如果没有它,事情会变得更简单。