Swift2 swift中的递归枚举和语法是什么

Swift2 swift中的递归枚举和语法是什么,swift2,Swift2,Swift 2.0有一个新特性,称为间接递归枚举。有人能解释一下是什么吗?来自 递归枚举是将枚举的另一个实例作为一个或多个枚举案例的关联值的枚举 给出的示例突出显示了一个简化的用例: indirect enum ArithmeticExpression { case Number(Int) case Addition(ArithmeticExpression, ArithmeticExpression) case Multiplication(ArithmeticExpr

Swift 2.0有一个新特性,称为间接递归枚举。有人能解释一下是什么吗?

来自

递归枚举是将枚举的另一个实例作为一个或多个枚举案例的关联值的枚举

给出的示例突出显示了一个简化的用例:

indirect enum ArithmeticExpression {
    case Number(Int)
    case Addition(ArithmeticExpression, ArithmeticExpression)
    case Multiplication(ArithmeticExpression, ArithmeticExpression)
}

func evaluate(expression: ArithmeticExpression) -> Int {
    switch expression {
        case .Number(let value):
            return value
        case .Addition(let left, let right):
            return evaluate(left) + evaluate(right)
        case .Multiplication(let left, let right):
            return evaluate(left) * evaluate(right)
    }
}

// evaluate (5 + 4) * 2
let five = ArithmeticExpression.Number(5)
let four = ArithmeticExpression.Number(4)
let sum = ArithmeticExpression.Addition(five, four)
let product = ArithmeticExpression.Multiplication(sum, ArithmeticExpression.Number(2))
print(evaluate(product))
// prints "18"