【发布时间】:2018-01-31 02:28:51
【问题描述】:
尝试比较两个闭包时出错:
二元运算符 '==' 不能应用于两个 '() -> ()' 操作数
我应该怎么做?
例如:
enum SomeEnum {
case caseOne
case caseTwo(closure: () -> Void)
}
let e1 = SomeEnum.caseTwo(closure: {
print("something 1")
})
let e2 = SomeEnum.caseTwo(closure: {
print("something 2")
})
switch (e1, e2) {
case let (.caseTwo(l), .caseTwo(r)):
return l == r // Binary operator '==' cannot be applied to two '() -> ()' operands
break
default:
break
}
【问题讨论】:
-
你为什么要比较两个闭包?
-
@Samah 这是一个枚举案例
loading(completion: () -> Void) -
请显示枚举的来源以及您如何使用它的示例。
-
@Samah 请查看更新内容
-
这听起来像是一个 XY 问题。比较
e1和e2的主要目的是什么?你只是想知道他们是否是同一个案例吗?
标签: swift