swift - 如何修复 Swift 枚举 switch case 问题
问题描述
假设我们有这个 enum 和一些 switch throw enum 本身的函数。
import UIKit
enum DumbTest {
case get(user: String)
case get(pony: String, tail: String)
func getSome() -> String {
switch self {
case .get(let user):
return "User muchacha \(user)"
case .get(let pony, let tail):
return "Fluttershy \(pony) with \(tail) tail"
}
}
}
DumbTest.get(pony: "cute pony", tail: "pink").getSome()
但是,似乎 swift 不明白它的不同情况,显示如下警告:
1. Case is already handled by previous patterns; consider removing it
2. Case will never be executed
对于这个字符串
case .get(let pony, let tail):
结果为
DumbTest.get(pony: "可爱的小马", tail: "pink").getSome() 是
"User muchacha (pony: "cute pony", tail: "pink")"
有要点
为什么会这样?
解决方案
推荐阅读
- c++ - 交换指针:相当于`std::unique_ptr::swap`
- python - Plotly:旭日形图未正确渲染
- java - 使用两个线程打印偶数和奇数
- unix - sed: -e expression #1, char 20: Jenkins Pipeline 中未终止的“s”命令
- c++ - openGL何时以及如何计算F_depth(深度值)
- javascript - 未捕获的类型错误:使用 -http://localhost:8080/ 时无法读取 null- 的属性“长度”
- php - Codeigniter 4 自动路由模块
- java - 为什么 ClassCastException 只发生在运行时?
- python - Python函数打印列表中元素的日期时间
- python-3.x - 如何通过 django 中的contact.html 模板发送电子邮件