带功能/操作员类型的开关/外壳

时间:2018-08-26 16:11:43

标签: swift switch-statement operators

我想用运算符实现switch语句,如下所示:

let op: (Int, Int) = Random.choice([(+), (-), (*)])

switch op {
case (+): // Compiler error
    print("addition")
default: 
    break
}

但是它给出了错误:

  

类型'_'的表达模式不能匹配类型'(Int,Int)-> Int'的值

我尝试过语法变化:

case +: // Another compiler error
  

一元运算符后的期望表达式

因此,看起来编译器甚至无法识别case下的运算符。可以使这样的switch语句起作用吗?

P.S。我对伪解决方案不感兴趣,例如使用随机数代替运算符或为它们创建包装器类。

0 个答案:

没有答案