Swift 3解包并在if中比较int

时间:2017-03-19 09:22:55

标签: swift if-statement swift3 compare optional

我正在尝试打开一个值,如果有效,请将其与大于0进行比较。

我正在做以下方式:

if let movieLength = movie.length as? Int, movieLength > 0 {
    self.durationLabel.text = "\(movieLength) min"
} else {
    self.durationLabel.isHidden = true
}

但是我收到了错误

  

来自'Int?'的沮丧'Int'只打开选项;你的意思是用'!'吗?

还尝试使用where关键字,但没有成功:

if let movieLength = movie.length as? Int where movieLength > 0 {
    self.durationLabel.text = "\(movieLength) min"
} else {
    self.durationLabel.isHidden = true
}

错误:

  

预期','加入多条款条件的部分

我刚才尝试过。

1 个答案:

答案 0 :(得分:7)

无需明确展开if let,这应该可以正常工作

if let movieLength = movie.length, movieLength > 0 {
    self.durationLabel.text = "\(movieLength) min"
} else {
    self.durationLabel.isHidden = true
}

您可以查看The Basics中的“可选绑定”以获取正确的语法。