自增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