在golang中,通常你想要声明一个指针类型相关的方法,因为你不想复制一个巨大的结构:
func (a *HugeStructType) AMethod() {
....
}
Run Code Online (Sandbox Code Playgroud)
在C++中,当我想制作这样一个方法,但保证它不会改变底层结构时,我声明了const:
class HugeStructType {
public:
void AMethod() const
...
}
Run Code Online (Sandbox Code Playgroud)
golang中有相同的东西吗?如果没有,是否有一种惯用的方法来创建一个指针类型相关的方法,已知不会改变底层结构?
Vol*_*ker 10
不,那里没有.
另外你的论点"因为你不想复制一个巨大的结构"经常是错误的.很难提出真正那么大的struct,在方法调用期间复制是应用程序的瓶颈(请记住切片和贴图很小).
如果你不想改变你的结构(当你考虑例如地图或指针字段时这是一个复杂的概念):就是不要这样做.或者复制一份.如果您担心性能:测量.
| 归档时间: |
|
| 查看次数: |
1646 次 |
| 最近记录: |