在 Dlang 语言中,inout 关键字表示参数既可以作为输入又可以作为输出,即可以在函数内部修改参数的值。但是,在函数调用时,只能传递可变的变量作为 inout 参数。因此,在 swap 函数中,你尝试将 inout 参数 ab 分别赋值为 8 和 9,但是由于你在调用 swap 函数时传递的是 xy 这两个不可变的变量,所以会出现报错提示 cannot modify 'inout' expression 'a'

如果你想在 swap 函数中修改 xy 的值,需要将它们定义为可变变量,即使用关键字 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
}
Dlang 语言 inout 关键字错误:cannot modify `inout` expression `a` 解释

原文地址: https://www.cveoy.top/t/topic/nZXq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录