dmd2的immutable和const的区别给3个具体例子我测试运行下
DMD2 中的 immutable 和 const 都用于声明常量,但它们之间还是有区别的。
区别如下:
-
const只能用于编译时常量,而immutable可以用于运行时常量。 -
immutable声明的变量在初始化后不能被修改,而const声明的变量不能被重新赋值。 -
immutable可以用于任何类型的变量,而const只能用于基本类型和static变量。
下面是 3 个具体例子:
// 例子1:使用 const 声明编译时常量
const int a = 10;
a = 20; // 错误:无法重新分配常量
// 例子2:使用 immutable 声明运行时常量
immutable int b = 10;
b = 20; // 错误:无法修改常量
// 例子3:使用 const 声明静态常量
static const int c = 10;
c = 20; // 错误:无法重新分配常量
这些代码都会在编译时出现错误,因为它们都试图修改常量。
原文地址: https://www.cveoy.top/t/topic/eTpM 著作权归作者所有。请勿转载和采集!