D语言 DMD 2.103 版本:函数参数只读修饰符 'in' 使用示例
在 D 语言中,可以使用 'in' 修饰符来限定函数参数为只读,即不能更改为同类型的其他引用。
以下是一个例子:
class MyClass
{
int value;
// 构造函数
this(int v)
{
value = v;
}
// 只读函数
int getValue() const
{
return value;
}
}
// 只读函数参数
void printValue(in MyClass mc)
{
writeln(mc.getValue());
}
void main()
{
auto mc1 = new MyClass(10);
auto mc2 = new MyClass(20);
printValue(mc1); // 输出 10
printValue(mc2); // 输出 20
// 下面代码编译会失败,因为 in 参数是只读的
// mc1 = mc2;
// mc1.value = 30;
}
在上面的例子中,'in' 修饰符限定了 printValue 函数的参数 mc 为只读,即不能更改为同类型的其他引用。因此,尝试修改 mc1 的值会导致编译错误。
原文地址: https://www.cveoy.top/t/topic/oazM 著作权归作者所有。请勿转载和采集!