首页 > 解决方案 > 将 String 转换为 Int 失败

问题描述

我有两个变量和number值,我想将这些字符串转换为 Int 并相互添加,但编译器返回错误:。number2StringBinary 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

标签: swift

解决方案


因为将 a 转换String为 anInt可能是失败的操作,比如转换A为 an Int,所以您使用的是可失败的初始化程序

这意味着你得到Int?了结果。在您的第一个示例中,您得到了Optional(65) when print的结果。在 Playgrounds 中,将显示可选值 just 65

问题来了,你不能和运算符加Int?在一起+,只有两个Ints。

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

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

推荐阅读