Несколько дней назад я преобразовал свой старый проект Xcode 8 в Swift 4 в Xcode 9.
Я заметил дополнительные коды Swift, сгенерированные вместе с пояснениями чуть выше кода.
Вот как это выглядит:
// FIXME: comparison operators with optionals were removed from the Swift Standard Libary.
// Consider refactoring the code to use the non-optional operators.
fileprivate func < <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
switch (lhs, rhs) {
case let (l?, r?):
return l < r
case (nil, _?):
return true
default:
return false
}
}
Я попытался понять, что делает код, и нашел то, что я считаю необычным _?
в коде.
Я полагаю, что это неиспользуемый необязательный параметр, поскольку _
означает, что мы не собираемся использовать конкретную переменную, поэтому нас не волнует имя переменной, а ?
является необязательным синтаксисом.
Спасибо за вашу помощь!