为了账号安全,请及时绑定邮箱和手机立即绑定

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

如题 这一章刘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/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信