【发布时间】:2017-04-04 14:07:05
【问题描述】:
我正在阅读 Big Nerd Ranch 的 Swift Programming 一书(第 2 版),在关于 Switch 语句的章节中,有一小部分是关于 in-cases 以及如何使用它们的。在描述如何实现具有多个条件的 if-case 时,这是本书显示的代码:
...
let age = 25
if case 18...35 = age, age >= 21 {
print("In cool demographic and of drinking age")
}
但是,当我尝试在我的 Xcode 游乐场中实现这个(完全按照它的样子)时,我收到一个错误(“条件中的变量绑定需要一个初始化程序”)
似乎年龄> = 21位是实际问题,因为这个
let age = 25
if case 18...35 = age{
// Same thing
}
工作正常。我在多条件代码中做错了什么?
【问题讨论】:
-
你在使用 Swift 2 吗? (如果是,为什么?)在 Swift 3.1 中编译对我来说很好
-
正如@Hamish 提到的,它在这里也很合规......你使用的是什么版本的 Swift?
-
Swift 2.2 确实给出了该错误消息。 Swift 2 的语法是
if case 18...35 = age where age >= 21 {。 -
引用标题为必要的硬件和软件的部分:本书是为 Swift 3.0 和 Xcode 8.0 编写的。许多示例不适用于旧版本的 Xcode。
-
但你真的应该升级到 Swift 3 - 最新版本的 Xcode 甚至不支持 Swift 2。
标签: swift pattern-matching if-case