自增Swift后如何赋值?
How to assign value after increment Swift?
var str = ["Franc": 2]
var a = 1
str["Franc"] = a += 1
print(str)
当我尝试此代码时,我在行 "str["Franc"] = a += 1" 上收到错误,即 "Cannot assign value of type '()' to type 'Int?'"
如何解决这个问题。我需要单行
提前谢谢你
我认为您不能在一行中完成此操作:
var str = ["Franc": 2]
var a = 1
str["Franc"] = a
a += 1
print(str)
你可以像这样增加数字
str["Franc"]! = a ; a += 1
赋值
var str = ["Franc": 2]
str["Franc"]! += 1
现在 str["Franc"]
将 returns 3
如果你想避免强制展开
str["Franc"] = (str["Franc"] ?? 0) + 1
您也可以使用 if let
if let num = str["Franc"] as? Double {
str["Franc"] = num + 1
}
我们只能在Objective C中直接这样做:
在Objective C中:
[str setValue:[NSNumber numberWithInt:a+=1] forKey:@"Franc"];
在Swift
str["Franc"] = a
a += 1
var str = ["Franc": 2]
var a = 1
str["Franc"] = a += 1
print(str)
当我尝试此代码时,我在行 "str["Franc"] = a += 1" 上收到错误,即 "Cannot assign value of type '()' to type 'Int?'" 如何解决这个问题。我需要单行 提前谢谢你
我认为您不能在一行中完成此操作:
var str = ["Franc": 2]
var a = 1
str["Franc"] = a
a += 1
print(str)
你可以像这样增加数字
str["Franc"]! = a ; a += 1
赋值
var str = ["Franc": 2]
str["Franc"]! += 1
现在 str["Franc"]
将 returns 3
如果你想避免强制展开
str["Franc"] = (str["Franc"] ?? 0) + 1
您也可以使用 if let
if let num = str["Franc"] as? Double {
str["Franc"] = num + 1
}
我们只能在Objective C中直接这样做:
在Objective C中:
[str setValue:[NSNumber numberWithInt:a+=1] forKey:@"Franc"];
在Swift
str["Franc"] = a
a += 1