【发布时间】:2019-08-28 12:39:35
【问题描述】:
如何验证以下源代码是否相等?
enum ErrorAPI: Equatable, Error {
case CannotFetch(String)
}
func ==(lhs: ErrorAPI, rhs: ErrorAPI) -> Bool {
switch (lhs, rhs) {
case (.CannotFetch(let a), .CannotFetch(let b)) where a == b:
return true
default:
return false
}
}
【问题讨论】:
-
你在问这段代码是如何工作的吗?或者你想要一个不同的方程解法?
-
是的。 -> 你是在问这段代码是如何工作的
-
@乔金丹尼尔森。我的函数出现错误,当我从你的代码中使用 let err1 = ErrorAPI.CannotFetch("abc") let err2 = ErrorAPI.CannotFetch("abc") print(err1 == err2),说我二元运算符 '= ='不能应用于'Error'和'ErrorAPI'类型的操作数
-
您使用的是哪个 Xcode/Swift 版本?在 Swift 4 及更高版本中,编译器会自动为 Equatable 一致性合成
==运算符,即使对于具有关联值的枚举也是如此。 -
请不要在cmets中描述问题,而是edit您的问题并添加minimal reproducible example。