關于枚舉中 定義方法的問題
如題 這一章劉sir講到了在枚舉中定義方法?
之前學習枚舉的時候 有一個遞歸計算的例子 如果我想把計算函數放到枚舉里 變成Ta自己的方法 應該怎么把方法提前聲明呢?
indirect enum ArithmeticExpression2{
?? ?
? ? case Number(Int)
? ? case Addition( ArithmeticExpression , ArithmeticExpression )
? ? case Multiplication( ArithmeticExpression , ArithmeticExpression )
?? ?
? ? func evaluate() -> Int {
? ? ? ? switch self {
? ? ? ? case let .Number(value):
? ? ? ? ? ? return value
? ? ? ? case let .Addition(left, right):
? ? ? ? ? ? //return evaluate(left) + evaluate(right) ? ? ? ? ? ? ? ? ? ? ? ? ? //swift 2
? ? ? ? ? ? return left.evaluate() + right.evaluate() ? ? //swift 3
? ? ? ? case let .Multiplication(left, right):
? ? ? ? ? ? //return evaluate(left) * evaluate(right) ? ? ? ? ? ? ? ? ? ? ? ? ? //swift 2
? ? ? ? ? ? return left.evaluate() * right.evaluate()? ? //swift 3
? ? ? ? }
? ? }
}
這里報錯了
Value of type 'ArithmeticExpression' has no member 'evaluate'
請問方法有沒有類似indeirect的關鍵字聲明呢 或者我該如何修改