二元运算符 + 不能应用于两个 int 操作数
Binary operator + cannot be applied to two int 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)
第一部分工作得很好,但我不明白为什么第二部分不行。我收到错误 'Binary operator "+" cannot be applied to two int operands',这对我来说意义不大。有人可以帮我解释一下吗?
您需要的是:
let height = "3"
let number = 4
let heightNumber = number + height.toInt()!
如果你想从 String
得到一个 Int
你使用 toInt()
.
1) 第一个代码有效是因为 String
有一个采用 Int
的初始化方法。然后上线
let widthLabel = label + String(width)
您正在使用 +
运算符连接字符串以创建 widthLabel
.
2) Swift 错误消息可能具有误导性,实际问题是 Int
没有 init
方法需要 String
。在这种情况下,您可以在 String
上使用 toInt
方法。这是一个例子:
if let h = height.toInt() {
let heightNumber = number + h
}
您应该使用 and if let
语句来检查 String
是否可以转换为 Int
因为 toInt
将 return 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
Swift 2.0 更新:
Int
现在有一个采用 String
的初始化程序,使示例 2(见上文):
if let h = Int(height) {
let heightNumber = number + h
}
您好,我对这段代码有疑问:
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)
第一部分工作得很好,但我不明白为什么第二部分不行。我收到错误 'Binary operator "+" cannot be applied to two int operands',这对我来说意义不大。有人可以帮我解释一下吗?
您需要的是:
let height = "3"
let number = 4
let heightNumber = number + height.toInt()!
如果你想从 String
得到一个 Int
你使用 toInt()
.
1) 第一个代码有效是因为 String
有一个采用 Int
的初始化方法。然后上线
let widthLabel = label + String(width)
您正在使用 +
运算符连接字符串以创建 widthLabel
.
2) Swift 错误消息可能具有误导性,实际问题是 Int
没有 init
方法需要 String
。在这种情况下,您可以在 String
上使用 toInt
方法。这是一个例子:
if let h = height.toInt() {
let heightNumber = number + h
}
您应该使用 and if let
语句来检查 String
是否可以转换为 Int
因为 toInt
将 return 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
Swift 2.0 更新:
Int
现在有一个采用 String
的初始化程序,使示例 2(见上文):
if let h = Int(height) {
let heightNumber = number + h
}