c++ - golang 中的 const 方法?

标签 c++ go constants

在 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/

相关文章:

c++ - 互斥锁在 Linux 中没有像我希望的那样工作

c++ - 如何将 Visual Studio 用作可变长度数组 (VLA) 工作的 IDE?

Godoc,为整个包创建 html

go - 如何使用结构/接口(interface)构建路由?

c++ - '非静态引用成员,不能使用默认赋值运算符'

C++常量结构成员初始化

c++ - 模板模板参数 : constructor initialization

c++ - 确定一个点是否在任意数量的框中的最有效方法是什么

excel - 如何 Swagger 发送 REST 响应 excel 文件?

C++ const char* 数组 2 个变量变成一个 'cell' ?