我试过这个
simple2 = {s1, s2 in s1 > s2}
和
var simple2 = {$0 > $1}
但仍在向我展示
swift 3关闭不明确使用“operator>”
最佳答案
闭包必须显式声明s1
和s2
参数的类型,并且该类型必须实现>
运算符。实现这一点的典型方法是使该闭包的签名确保两个参数(a)是相同的类型;(b)符合Comparable
协议。
如果希望simple2
采用任何Comparable
类型,而不是闭包,则可以定义一个通用函数:
func simple2<T: Comparable>(_ s1: T, _ s2: T) -> Bool {
return s1 > s2
}
然后您可以用任何类型的
Comparable
来调用它。关于swift - 模糊地使用运算符'>',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46382114/