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

Flutter技术问题:如何让变量每次调用都重新执行函数获取新值?

解决每次获取新随机玩家值的问题

你现在的问题出在player1是个普通字符串变量,它只会在初始化时调用一次player1gen函数,之后就固定存储第一次生成的值,不会自动更新。要实现每次调用都拿到新的随机值,有两种简单的方法:


方法1:直接调用函数代替变量

去掉player1变量,每次需要随机玩家的时候直接调用player1gen(players)。另外建议复用Random实例,避免短时间内重复生成相同的随机序列:

final _random = Random();

String player1gen(List players) {
  return players[_random.nextInt(players.length)].toString();
}

// 每次需要新值时直接调用函数
print(player1gen(players));
print(player1gen(players)); // 这会得到新的随机值

方法2:使用Getter(计算属性)

如果想保留类似变量的调用方式,可以把player1改成Getter,每次访问它时都会自动执行函数生成新值:

final _random = Random();

String player1gen(List players) {
  return players[_random.nextInt(players.length)].toString();
}

// 定义Getter,访问时自动执行函数
String get player1 => player1gen(players);

// 使用方式和变量一致,但每次都会拿到新值
print(player1);
print(player1); // 输出不同的随机值

内容的提问来源于stack exchange,提问作者Entrebear

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:45:11