问答详情
源自:2-4 swift结构体之在结构体和枚举中定义方法

关于枚举中 定义方法的问题

如题 这一章刘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的关键字声明呢 或者我该如何修改

提问者:慕虎2394297 2023-03-15 10:43

个回答