如何在递增 Swift 后赋值?
Posted
技术标签:
【中文标题】如何在递增 Swift 后赋值?【英文标题】:How to assign value after increment Swift? 【发布时间】:2020-06-06 07:39:55 【问题描述】:var str = ["Franc": 2]
var a = 1
str["Franc"] = a += 1
print(str)
当我尝试此代码时,我在 "str["Franc"] = a += 1" 行出现错误,即“无法将类型 '()' 的值分配给类型 'Int?'” 如何解决这个问题。我需要它在单行 提前谢谢你
【问题讨论】:
基本上是Multiple variable assignment in Swift的副本。 另见increment Error in swift 3 我的意思是将“a”的值设置为字典然后递增。怎么可能在一行 【参考方案1】:我们只能在 Objective C 中直接这样做:
在目标 C 中:
[str setValue:[NSNumber numberWithInt:a+=1] forKey:@"Franc"];
在 Swift 中
str["Franc"] = a
a += 1
【讨论】:
这是唯一可行的方法?【参考方案2】:你可以像这样增加数字
str["Franc"]! = a ; a += 1
赋值
var str = ["Franc": 2]
str["Franc"]! += 1
现在str["Franc"]
将返回 3
如果你想避免强制展开
str["Franc"] = (str["Franc"] ?? 0) + 1
你也可以使用if let
if let num = str["Franc"] as? Double
str["Franc"] = num + 1
【讨论】:
我的意思是将“a”的值设置为字典然后递增。怎么可能在一行str["Franc"]! = a ; a += 1
这就是你如何在一行中做到这一点......【参考方案3】:
我认为你不能在一行中做到这一点:
var str = ["Franc": 2]
var a = 1
str["Franc"] = a
a += 1
print(str)
【讨论】:
您没有在答案中增加a
,看起来这是 OP 想要的。
我的意思是将“a”的值设置为字典然后递增。怎么可能在一行
好吧,我的错误错过了阅读问题,所以你想将 a 添加到字典中,然后增加字典值或然后增加 a?
我认为你不能在一行中同时完成这两项工作。以上是关于如何在递增 Swift 后赋值?的主要内容,如果未能解决你的问题,请参考以下文章