Dlang 语言 inout 关键字错误:cannot modify `inout` expression `a` 解释
在 Dlang 语言中,inout 关键字表示参数既可以作为输入又可以作为输出,即可以在函数内部修改参数的值。但是,在函数调用时,只能传递可变的变量作为 inout 参数。因此,在 swap 函数中,你尝试将 inout 参数 a 和 b 分别赋值为 8 和 9,但是由于你在调用 swap 函数时传递的是 x 和 y 这两个不可变的变量,所以会出现报错提示 cannot modify 'inout' expression 'a'。
如果你想在 swap 函数中修改 x 和 y 的值,需要将它们定义为可变变量,即使用关键字 var。修改后的代码如下:
void swap(inout int a, inout int b) {
a = 8;
b = 9;
}
void main() {
var x = 1;
var y = 2;
swap(x, y);
writeln(x); // 输出 8
writeln(y); // 输出 9
}
原文地址: https://www.cveoy.top/t/topic/nZXq 著作权归作者所有。请勿转载和采集!