我想用运算符实现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。我对伪解决方案不感兴趣,例如使用随机数代替运算符或为它们创建包装器类。