golang中的const方法?

djh*_*987 2 c++ const go

在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,在方法调用期间复制是应用程序的瓶颈(请记住切片和贴图很小).

如果你不想改变你的结构(当你考虑例如地图或指针字段时这是一个复杂的概念):就是不要这样做.或者复制一份.如果您担心性能:测量.