Swift:基本语法

时间:2015-08-29 12:42:09

标签: swift syntax enums case

我正在尝试使用Swift by MVC版本制作一个计算器。有一次我请一些人来帮助我,他们给了我这段代码,我真的不明白然后枚举部分,特别是嵌套在枚举中的案例。 换句话说,我们的意思是什么?

case UnaryOperation (String,Double -> Double)
case BinaryOperation(String,(Double,Double)-> Double)

其中一个接收参数是String的第一部分很有意义,但第二部分让我很困惑

class CalculatorBrain {

    enum Op{

        case Operand (Double)
        case UnaryOperation (String,Double -> Double)
        case BinaryOperation(String,(Double,Double)-> Double)

    }

    var opStack = [Op]()
    func pushOperand(Operand : Double){
        opStack.append(Op.operand(Operand))
    }

}

1 个答案:

答案 0 :(得分:0)

考虑这两个:

case UnaryOperation (String, Double -> Double)
case BinaryOperation (String, (Double,Double) -> Double)

这只是意味着UnaryOperation有两个“关联值”,其中一个是String,另一个是闭包(一个以Double作为参数并返回一个Double)。 BinaryOperation是相同的,除了它的闭包有两个参数,两个Double

请参阅 Swift编程语言的Enumerations(特别是“关联值”部分)和Closures章节。