我在将可选字符串转换为整数时遇到了问题。
println("str_VAR = \(str_VAR)")
println(str_VAR.toInt())
结果是
str_VAR = Optional(100)
nil
我希望你能把它做成
str_VAR = Optional(100)
100
我在将可选字符串转换为整数时遇到了问题。
println("str_VAR = \(str_VAR)")
println(str_VAR.toInt())
结果是
str_VAR = Optional(100)
nil
我希望你能把它做成
str_VAR = Optional(100)
100
在撰写本文时,本页面上的其他答案使用了旧的Swift语法。这是一个更新。
String? -> Int
let optionalString: String? = "100"
if let string = optionalString, let myInt = Int(string) {
print("Int : \(myInt)")
}
这将把字符串"100"
转换为整数100
并打印输出。如果optionalString
是nil
、hello
或3.5
,则不会打印任何内容。
还可以考虑使用guard
语句。
if let yourStr = str_VAR?.toInt() {
println("str_VAR = \(yourStr)") //"str_VAR = 100"
println(yourStr) //"100"
}
if let yourStr = str_VAR?.toInt() {
println("str_VAR = \(yourStr)")
println(yourStr)
}else {
//show an alert for something else
}
if let 结构会解包 str_VAR?.toInt()
(即检查是否存在存储的值并获取该值),并将其值存储在 yourStr
常量中。您可以在 if 的第一个分支中使用 yourStr
。请注意,在 if 语句内部,您不再需要使用 ? 或 !。重要的是要意识到,yourStr
实际上是一种非可选类型的 Int
,因此可以直接使用其值。
toInt()
不再可用。 - Dharmesh Kheni试试这个:
if let i = str_VAR?.toInt() {
println("\(i)")
}