Ios Int()类型转换时执行失败
当我遇到这个问题时,我正在编写关于Swift的教程 代码:Ios Int()类型转换时执行失败,ios,swift,Ios,Swift,当我遇到这个问题时,我正在编写关于Swift的教程 代码: var languagesLearned: String = "3" if let num: Int? = Int(languagesLearned) { print("It is a number") } else { print("It is not a number") } Playground execution failed: /var/folders/f7/0j8dbxls0kv0l9d6jwk30f2h0
var languagesLearned: String = "3"
if let num: Int? = Int(languagesLearned)
{
print("It is a number")
}
else
{
print("It is not a number")
}
Playground execution failed: /var/folders/f7/0j8dbxls0kv0l9d6jwk30f2h0000gn/T/lldb/20598/playground134.swift:72:20: error: cannot invoke 'init' with an argument of type '@lvalue String'
if let num: Int? = Int(languagesLearned)
^~~~~~~~~~~~~~~~~~~~~
错误:
var languagesLearned: String = "3"
if let num: Int? = Int(languagesLearned)
{
print("It is a number")
}
else
{
print("It is not a number")
}
Playground execution failed: /var/folders/f7/0j8dbxls0kv0l9d6jwk30f2h0000gn/T/lldb/20598/playground134.swift:72:20: error: cannot invoke 'init' with an argument of type '@lvalue String'
if let num: Int? = Int(languagesLearned)
^~~~~~~~~~~~~~~~~~~~~
我找不到我为什么会犯这样的错误。我也不知道它在说什么
回答后更正代码
var languagesLearned: String = "3"
var languagesLearnedNum = languagesLearned.toInt()
if let num = languagesLearnedNum
{
print("It is a number")
}
else
{
print("It is not a number")
}
在Swift 1.x中,使用:
languagesLearned.toInt()
另外,不要将
num
变量作为可选的int(int?
)键入。在这一点上,它不再是可选的。因为我想将最终转换的代码(从Swift 2到1.x)留给遇到此问题的任何其他人,是var languagesLearnedNum=languagesLearned.toInt()
正确还是应该将if let
缩短为if let num=languagesLearned.toInt()
?依我看,第二种可能更好。