我试过这个

simple2 = {s1, s2 in s1 > s2}


var simple2 = {$0 > $1}

但仍在向我展示
swift 3关闭不明确使用“operator>”

最佳答案

闭包必须显式声明s1s2参数的类型,并且该类型必须实现>运算符。实现这一点的典型方法是使该闭包的签名确保两个参数(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/

10-10 22:08
查看更多