swift - 快速检查错误变量是否不是某些错误的特定情况
问题描述
我有一个错误,我需要检查它是否不是MyError 的特定情况:
enum MyError {
case one(description: String)
case two(description: String)
case three(description: String)
(...)
}
我可以轻松检查error
变量是否是 MyError 的特定情况:
if case MyError.one = error {
// this is definitely error MyError.one
}
我怎样才能确定它不是一个特定的案例?
if (...) { // something like: !(case MyError.one = error)
// this is any other case but NOT MyError.one
}
我知道我可以使用guard
关键字来做到这一点,或者if-else
但我想知道是否有更优雅的解决方案(因为警卫需要 a return
):
guard case MyError.one = error else {
// this is any other case but NOT MyError.one
return
}
解决方案
您还可以在枚举中添加辅助方法:
enum MyError {
case one(description: String)
case two(description: String)
case three(description: String)
var isOne:Bool {
if case MyError.one = self {
return true
}
return false
}
}
不幸的是,目前不可能做任何比这更简单的事情。这里有几个关于这个和相关主题的好帖子:
推荐阅读
- pyspark - EMR PySpark "ModuleNotFoundError: No module named 'spacy'"
- javascript - 将鼠标事件冒泡到 chart.js 的父画布
- java - Liferay group private pages first load time is slow
- python - Scraping img class from facebook HTML source?
- python - how to find and set a new variable using file handling
- html - why can i not hover the other p element, and get the same reults?
- php - 如何将 HTML 选择列表添加到 MediaWiki ContactPage?
- c# - How do I have a variable determine how many decimal points to display? c#
- javascript - 在javascript中是否可以从另一个已知的全局变量中获取对全局变量名称(窗口,...)的引用?
- java - Mac OS Catalina 上的 SAP Hybris