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
相关产品推荐
相关产品推荐

