關(guān)于枚舉中 定義方法的問題
如題 這一章劉sir講到了在枚舉中定義方法?
之前學(xué)習(xí)枚舉的時(shí)候 有一個(gè)遞歸計(jì)算的例子 如果我想把計(jì)算函數(shù)放到枚舉里 變成Ta自己的方法 應(yīng)該怎么把方法提前聲明呢?
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
? ? ? ? }
? ? }
}
這里報(bào)錯(cuò)了
Value of type 'ArithmeticExpression' has no member 'evaluate'
請(qǐng)問方法有沒有類似indeirect的關(guān)鍵字聲明呢 或者我該如何修改