Расширена функциональность enum, структур - во многом теперь похожи на классы.
enum Barcode {
case UPCA(Int, Int, Int, Int)
case QRCode(String)
}
Closures (лямбда, блоки), сортировку можно так написать
reversed = sorted(names, { (s1: String, s2: String) -> Bool in return s1 > s2 } )
reversed = sorted(names, { s1, s2 in return s1 > s2 } )
reversed = sorted(names, { s1, s2 in s1 > s2 } )
reversed = sorted(names, { $0 > $1 } )
reversed = sorted(names, >)
Обработчик ошибок
enum CarEngineErrors: ErrorType {
case NoFuel
case OilLeak
case LowBattery
}
func checkEngine() throws {
guard fuelReserve > 0.0 else {
throw CarEngineErrors.NoFuel
}
...
}
Swift в open source