我有两个变量number
和number2
与String
值,我想将这些字符串转换为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)