Comments 20
UIColor.redColor () становится UIColor.red ()
UIColor.redColor () становится UIColor.red
Конструкции типа
if array?.count > 0
надо переделывать вif array != nil && array!.count > 0
или использовать добавленную xcode перегрузку оператора сравненияfunc > <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
switch (lhs, rhs) {
case let (l?, r?):
return l > r
default:
return rhs < lhs
}
}
Можно считать, что в терминах semver это версия 0.3.
В терминах semver это как раз 3.0, так как сломана обратная совместимость, нет?
С моей колокольни swift пока выглядит как under heavy development, ни разу ещё нормально не стабилизировавшись. Возможно, на iOS и Mac OS X это не так.
Semver допускает несовместимость между минорными версиями в рамках 0.x
До версии 1.0 semver позволяет вносить ломающие изменения в 0.* выпуски
4) Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.
Например, имеем такой вызов в классе DemoViewController
//
// DemoViewController.swift
// Election Balls
func animateScore()
{
if tempScore<maxScore {
tempScore += 1
scoreLabel.text = "\(tempScore)"
Timer.scheduledTimer(timeInterval: 0.07, target: self, selector: #selector(PlayViewController.animateScore), userInfo: nil, repeats: false)
} else {
}
}
работает правильно, хотя в вызове ошибка.
Я, конечно, не настоящий сварщик свифтер, но @discardableResult
какой-то странной штукой кажется. В смысле, сознательно делаем метод с "не особо полезным" возвращаемым значением. Не лучше тогда сделать две разные функции/перегрузки и/или дать возможность подавлять предупреждение в вызывающем коде?
Простой пример не особо полезного возвращаемого значения (один из методов массива):
public mutating func removeAtIndex(index: Int) -> Element
@discardableResult mutating func remove(at index: Int) -> Element
Иногда нужен только побочный эффект, а иногда и результат.
дать возможность подавлять предупреждение в вызывающем коде
А вот этого, видимо, хотели избежать. Тот кто проектирует API знает, есть ли побочный эффект у функции и может правильно аннотировать. Если побочный эффект у функции имеется, то её вызов имеет смысл даже без использования результата. Если побочного эффекта нет, то без результата вызов смысла не имеет.
1. При переводах принято указывать, что это перевод, а не оригинал
2. Переведено явно программно и потом, возможно, чуточку подправлено.
Что нового в Swift 3?