在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 }

以下dlang语言报错提示cannot modify inout expression a请解释下代码如下:void swapinout int a inout int b a = 8; b = 9;void main int x = 1; int y = 2; swapx y; writelnx; 输出2 writelny; 输出1

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

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