为什么Swift不能添加两个Int?

时间:2015-04-15 04:37:43

标签: swift

当我尝试以下操作时:

var somestring = "5"
var somenumber = 2
var newnumber:Int = Int(somestring) + somenumber

我收到此错误:

  

二元运算符'+'不能应用于两个Int操作数

我做错了什么?添加两个Ints不应该'+'有效吗?

2 个答案:

答案 0 :(得分:5)

这是一个非常奇怪的错误消息。实际问题是你不能简单地用字符串构造Ints。正确的方法是使用toInt方法,如下所示:

var newnumber:Int = something.toInt()! + somenumber

请注意,toInt会返回一个用!打开的可选项。如果您不确定字符串是否表示整数,则还需要添加错误处理。

答案 1 :(得分:3)

您应该考虑使用nil coalescing operator" ??"尝试从字符串中提取值时返回0而不是nil:

let someString = "5"
let someNumber = 2
let newNumber = (someString.toInt() ?? 0) + someNumber

println(newNumber) // 7

let anotherString = "a"
let anotherNumber = (anotherString.toInt() ?? 0) + someNumber

println(anotherNumber) // 2

更新: Xcode 7.1.1•Swift 2.1

let someString = "5"
let someNumber = 2
let newNumber = (Int(someString) ?? 0) + someNumber

print(newNumber) // 7

let anotherString = "a"
let anotherNumber = (Int(anotherString) ?? 0) + someNumber   // 2