测试基于枚举的变量是否*不*等于具有关联值的特定情况的最简单方法是什么?
What is the easiest way to test if an enum-based variable is *not* equal to a specific case with an associated value?
我们有以下枚举和变量
enum DisplayState{
case loading
case loaded(ViewModel)
case noResults
case error
}
var displayState:DisplayState = .loading
我们想测试我们是否处于 loaded
以外的任何状态。
既然有关联值,这当然不行...
if displayState != .loaded {
// Do something
}
但我希望能找到除这两者之外的其他东西...
switch displayState{
case .loaded: break
default: // Do something
}
或
if case .loaded = displayState {} else {
// Do something
}
那么测试这种情况的最简单方法是什么?
试试看:
enum DisplayState {
case loading
case loaded(ViewModel)
case noResults
case error
var isLoaded: Bool {
switch self {
case .loaded:
return true
default:
return false
}
}
}
var displayState: DisplayState = .loading
if displayState.isLoaded {
// code
}
我们有以下枚举和变量
enum DisplayState{
case loading
case loaded(ViewModel)
case noResults
case error
}
var displayState:DisplayState = .loading
我们想测试我们是否处于 loaded
以外的任何状态。
既然有关联值,这当然不行...
if displayState != .loaded {
// Do something
}
但我希望能找到除这两者之外的其他东西...
switch displayState{
case .loaded: break
default: // Do something
}
或
if case .loaded = displayState {} else {
// Do something
}
那么测试这种情况的最简单方法是什么?
试试看:
enum DisplayState {
case loading
case loaded(ViewModel)
case noResults
case error
var isLoaded: Bool {
switch self {
case .loaded:
return true
default:
return false
}
}
}
var displayState: DisplayState = .loading
if displayState.isLoaded {
// code
}