我有一个元组作为函数的返回值。如下所示
guard var (index, player) = self.getFielderSelected(coordinate: viewFielder.center) else { return }
字符串但只有玩家被修改。所以我得到一个警告“变量'index'从未变异;考虑改变为'let'常量”。但如果我让它让我不能修改玩家。有没有办法让'index' let和'player' var。
nxagd54h1#
消除警告的一种方法是显式声明一个变量,以便在guard语句中保存结果
guard
guard var tuple: (index: Int, player: Player) = self.getFielderSelected(coordinate: viewFielder.center) else { return }
字符串然后使用这个变量
tuple.player = ...
型这将删除警告,因为变量tuple已修改。
tuple
ep6jt1vc2#
有一个使用模式匹配的解决方案。它看起来比原始变体更糟糕,但比元组变量的变体清晰得多。
guard case .some((let index, var player)) = self.getFielderSelected(coordinate: viewFielder.center) else { return }
字符串
2条答案
按热度按时间nxagd54h1#
消除警告的一种方法是显式声明一个变量,以便在
guard
语句中保存结果字符串
然后使用这个变量
型
这将删除警告,因为变量
tuple
已修改。ep6jt1vc2#
有一个使用模式匹配的解决方案。它看起来比原始变体更糟糕,但比元组变量的变体清晰得多。
字符串