0
如何在Swift中存储用于评估操作符的函数的变量?Swift中操作符的转义关闭
Int.<
也没有Int.`<`
似乎为我编译。
字母数字函数名称,这工作得很好:
extension Comparable {
static func lessThan(_ lhs: Self, _ rhs: Self) -> Bool {
return lhs < rhs
}
}
let comparator = Int.lessThan
我知道我可以创建一个新的闭包这样的,但我觉得必须有一个更优雅的方式:
let comparator: (Int, Int) -> Bool = {
return $0 < $1
}
请注意,<
实际上是Swift 3中的Comparable
的静态函数,顶级运算符<
仅仅是这样一个包装:
public protocol Comparable : Equatable {
...
public static func <(lhs: Self, rhs: Self) -> Bool
...
}
谢谢,现在我觉得自己很蠢。 –
@ChristianSchnorr不要:)这一点都不明显 – Alexander
你知道是否有一种方法可以将它作为该类型的属性进行访问?我猜'(<)'是指顶层包装函数,而*不是* Int实际的静态方法。 –