You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart函数未按预期修改变量并返回值问题求助

问题原因

你代码里的问题出在两个地方:

  1. make()函数内部重新声明了一个局部变量String example,这个变量和全局的example是完全独立的两个变量,修改它不会影响全局的那个。
  2. 你在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 17:44:57