Ios Int()类型转换时执行失败

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

当我遇到这个问题时,我正在编写关于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/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()
?依我看,第二种可能更好。