将String转换为Int失败



我有两个变量numbernumber2String值,我想将这些字符串转换为Int并相互相加,但编译器返回错误:Binary operator '+' cannot be applied to two 'Int?' operands.

var n1 = "6"
var number = n1 + "5"
Int(number)
var n2 = "3"
var number2 = n2 + "5"
var finalNumber = Int(number2) + Int(number)
print(finalNumber)

我想要Int数字的摘要,而不是字符串。预期结果:19

因为将String转换为Int可能是一个失败的操作,例如将A转换为Int,因此您正在使用可失败的初始化项。

这意味着您将获得Int?作为结果。在第一个示例中,当打印时,您将得到Optional(65)的结果。在操场上,可选的值仅为65,而不是显示。

问题出现了,你不能把Int?+运算符加在一起,只有两个Int运算符。

如果转换失败并且结果是nil,您可以通过提供默认值来解决这个问题:

var finalNumber = Int(number2) ?? 0 + (Int(number) ?? 0)

最新更新