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實際的靜態方法。 –