swift - 带功能/操作器类型的开关/外壳
问题描述
我想用运算符实现一个 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 语句起作用?
PS 我对伪解决方案不感兴趣,比如使用随机数而不是运算符或为它们创建包装类。
解决方案
推荐阅读
- css - 为什么最后一个层次结构不擦除第一个层次结构?
- javascript - 如何比较两个数组并返回 JavaScript 中的差异
- angular - 如何根据查询参数更改路由或组件
- java - 尝试运行 Chromedriver 时我的配置有什么问题?(智能 / 弹簧)
- python - AWS Elastic Beanstalk Django 配置文件异常
- excel - 如何在Excel中的单元格中创建只能单击而不是选中的超链接
- python - 为什么我的代码没有保存移位字段 df.shift()?
- python - 循环创建集群的问题
- dataweave - 这个骡子功能到底是什么
- r - 在 R 中扩展时间序列