Dart函数未按预期修改变量并返回值问题求助
问题原因
你代码里的问题出在两个地方:
make()函数内部重新声明了一个局部变量String example,这个变量和全局的example是完全独立的两个变量,修改它不会影响全局的那个。- 你在
main()里调用make()后,没有把函数返回的值赋值给全局的example变量,所以全局变量还是原来的初始值。
修复方案
方案1:接收函数返回值并赋值(推荐)
直接把make()的返回值赋值给全局的example,这是更清晰的做法:
String example = "not working :/"; String make(){ return "Hello World"; } void main() { example = make(); // 将返回值赋值给全局变量 print(example); // 输出 Hello World }
方案2:直接修改全局变量(不推荐)
如果一定要在函数里修改全局变量,不要在函数内部重新声明同名变量:
String example = "not working :/"; void make(){ example = "Hello World"; } void main() { make(); print(example); // 输出 Hello World }
更优实践:避免全局变量
全局变量容易导致代码逻辑混乱,更好的方式是在函数内生成值,然后在main()里直接使用返回值:
String make(){ return "Hello World"; } void main() { String example = make(); // 用局部变量接收返回值 print(example); // 输出 Hello World }
内容的提问来源于stack exchange,提问作者Jackson Smith
相关产品推荐
相关产品推荐

