关于枚举中 定义方法的问题
如题 这一章刘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的关键字声明呢 或者我该如何修改