Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
нет GC
нет управляемого рантайма
да и недостаточно он низкоуровневый.
нормальной кросс-платформенности
Ядро ОС и драйвера писать — опять же недостаточно низкоуровневый
Как скрипт-язык — недостаточно гибок, и заточен под компиляцию
учитывая насколько страшен ObjC
enum FooResult {
case Success(Int),
case PEBKACError,
case SomeOtherError(String /*reason*/)
}
func foo(...) -> FooResult { ... }
switch foo (...) {
case .Success(let result):
...
case .PEBKACError:
...
case .SomeOtherError(let reason):
...
}
// возврат нескольких значений из функции
func getGasPrices() -> (Double, Double, Double) {
return (3.59, 3.69, 3.79)
}
getGasPrices()
// переменно число параметров в функции
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
sumOf()
sumOf(42, 597, 12)
let π = 3.14159
let 你好 = "你好世界"
let Блог = "Хабрахабр"
∄ : ∀ {a b} {A : Set a} → (A → Set b) → Set (a ⊔ b)
∄ P = ¬ ∃ P
szamlakKozottiAtvezetes.
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}func sumOf(numbers: Int...) Int {}int foo()int (*foo)()int (*foo[])()int (*(*foo())[])()int (**foo())()Вместо этого знаменитая фруктовая компания усложняет и без того непередаваемо сложную систему языков, компиляторов и платформ.
Почему нельзя доработать OpenGL, вместо создания поделки только для своей платформы.
А вместо того чтобы биться головой об GLES, пытаясь выжимать по каплям хоть что-то
iOS стремится быть «консолью» и это хорошо. Нативный код, фиксированная конфигурация. А главное — единообразный API. GL всё-таки инородный.
Почему нельзя доработать OpenGL, вместо создания поделки только для своей платформы. Почему не сделать поддержку C++ для Cocoa (и избавить разработчиков от необходимости писать порой слой совместимости).
BLABlahBlahBlahViewController *blah = [[BLABlahBlahBlahViewController alloc] initWithStyle: BLABlahBlahBlahViewControllerFancyStyle];
var blah = BlahBlahBlahViewController(style: .fancy)
func foo() {
let f = File("foo.txt");
...
// ссылка умерла файл закрылся
}
enum MyEnum: Int {
case E1, E2, E3, E4
}
let myValue = MyEnum.FieldA
// в условиях
if myValue == .FieldB { ... }
// и в switch
switch myValue {
case .FieldC: ...
}
var name = "Alex";
name = 10;
Swift — нововведения