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

时间:2015-05-20 12:27:42

标签: swift sum operands

您好我对此代码有疑问:

1)

let label = "The width is "
let width = 94
let widthLabel = label + String(width)

2)

let height = "3"
let number = 4
let hieghtNumber = number + Int(height)

第一部分工作正常,但我不明白第二部分不是。我收到错误'二进制运算符'+“不能应用于两个int操作数',这对我来说没有多大意义。有人可以帮我解释一下吗?

2 个答案:

答案 0 :(得分:16)

1)第一个代码有效,因为String有一个带Int的init方法。然后就行了

let widthLabel = label + String(width)

您要使用+运算符连接字符串,以创建widthLabel

2) Swift错误消息可能会产生误导,实际问题是Int没有init方法需要String 。在这种情况下,您可以使用toInt上的String方法。这是一个例子:

if let h = height.toInt() {
    let heightNumber = number + h
}

您应该使用if let语句检查String是否可以转换为Int,因为如果toInt失败,nil将返回height;在这种情况下强制解包会使你的应用程序崩溃。请参阅以下示例,了解如果Int无法转换为let height = "not a number" if let h = height.toInt() { println(number + h) } else { println("Height wasn't a number") } // Prints: Height wasn't a number 会发生什么:

Int

Swift 2.0更新:

String现在有一个初始值为if let h = Int(height) { let heightNumber = number + h } ,示例2(见上文):

X509Certificate

答案 1 :(得分:0)

你需要的是:

let height = "3"
let number = 4
let heightNumber = number + height.toInt()!

如果您希望从Int获得String,请使用toInt()