在 golang 中,通常你想声明一个指针类型的关联方法,因为你不想复制一个巨大的结构:
func (a *HugeStructType) AMethod() {
....
}
在 C++ 中,当我想创建这样一个方法,但要保证它不会改变底层结构时,我将其声明为 const
:
class HugeStructType {
public:
void AMethod() const
...
}
golang 中是否有等效项?如果不是,是否有惯用的方法来创建已知不会更改底层结构的指针类型关联方法?
最佳答案
不,没有。
另外,您的论点“因为您不想复制一个巨大的结构”经常是错误的。很难想出真正那么大的结构,方法调用期间的复制是应用程序瓶颈(请记住 slice 和映射很小)。
如果您不想改变您的结构(当您考虑映射或指针字段时,这是一个复杂的概念):只是不要这样做。或者复印一份。如果您担心性能:测量。
关于c++ - golang 中的 const 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30196175/