我正在尝试使用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))
}
}
答案 0 :(得分:0)
考虑这两个:
case UnaryOperation (String, Double -> Double)
case BinaryOperation (String, (Double,Double) -> Double)
这只是意味着UnaryOperation
有两个“关联值”,其中一个是String
,另一个是闭包(一个以Double
作为参数并返回一个Double
)。 BinaryOperation
是相同的,除了它的闭包有两个参数,两个Double
。
请参阅 Swift编程语言的Enumerations(特别是“关联值”部分)和Closures章节。