您好我对此代码有疑问:
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操作数',这对我来说没有多大意义。有人可以帮我解释一下吗?
答案 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()
。