Swift 3解包并在if中比较int

Mig*_*iro 2 if-statement compare optional swift swift3

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

我正在做以下方式:

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

但是我得到了错误

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

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

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

有错误:

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

我刚刚在上面尝试过.

xhg*_*xhg 8

无需明确展开if let,只需这样就可以了

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

您可以在" 基础知识 "中查看"可选绑定"以获得正确的语法.