对swift enum语法感到困惑

时间:2017-05-01 09:20:52

标签: swift enums

我正在学习这本书和#34; Functional Swift"以及我不了解的代码片段。

indirect enum Tree <Element: Comparable> {
    case Leaf
    case Node(Tree <Element>, Element, Tree <Element>)
}

extension Tree {
    init() {
        self = .Leaf
    }
    init(_ value: Element) {
        self = .Node(.Leaf, value, .Leaf)
    }
    var isEmpty: Bool {
        if case .Leaf = self {
            return true
        }
        return false
    }
}

let a = Tree<Int>()
let b = Tree<Int>(5)

a.isEmpty
b.isEmpty

如果案件.Leaf = self 让我感到困惑。为什么 case 不在开关块中,为什么它在条件语句中使用赋值(=)而不是等式(==)。我知道这意味着这个枚举值是.Leaf然后是blablabla,但是我真的不理解的语法。

0 个答案:

没有答案