在许多现代语言中,应该使用 const 修饰符来澄清接口和意图,并为编译器提供一些优化机会。在 D 中,有一个非常酷的功能,可以实现真正的不可变数据。如何使用 const 和 immutable 呢?我想,将 const 作为函数参数的修饰符,将 immutable 用于本地变量似乎是编写代码的好方法,但是一旦您想要将带有引用或指针类成员(无论是私有还是公有)的结构体分配给不可变变量时,就无法做到这一点。
因此,如果我使用不可变类型,更改
struct S {
private int[] data;
}
void main() {
immutable s = new S; // won't work, since members aren't immutable
}
因此,如果我使用不可变类型,更改
struct
的实现可能会破坏我的代码。在本地变量中应该使用const
并仅在必要时使用不可变类型吗?有哪些指南?