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

来源:2-4 swift结构体之在结构体和枚举中定义方法

慕虎2394297

2023-03-15 10:43

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

写回答 关注

0回答

还没有人回答问题,可以看看其他问题

玩儿转Swift 2.0(第三季)

玩儿转Swift面向对象,对swift语言的掌握达到中等偏上水平

13968 学习 · 41 问题

查看课程

相似问题