Комментарии 51
А можно ли скачать новую XCode не имея статус разработчика?
В интернетах есть образы MacOS 10.9.3 и XCode 6 beta. Вроде работает.
А на текущей стабильной OSX заработает или надо бету обязательно?
Но тестировать без статуса даже на симуляторе не получиться
Да, заходите в AppStore со своего яблока, авторизуете в Apple ID и скачиваете. Так же, на оф. сайте можете скачать любую версию Xcode.
компания Apple начала творить революцию в стане Objective-C разработчиков
Очередная яблочная «революция».
OptionalValue
func makeIncrementer() -> (Int -> Int)
Иногда возникает ощущение, что авторы курили Хаскель.
func makeIncrementer() -> (Int -> Int)
Иногда возникает ощущение, что авторы курили Хаскель.
и Скалу
И правильно делали.
Очень жаль только, что не все является выражением. В скале уже привык к val x = for(i < — 1 to 5) yield i*2
Да, согласен. То же самое с
Особенно в анонимных функциях, это ужас какой-то:
if
и другими управляющими конструкциями. Очень странное решение, учитывая функциональные возможности языка, так как это означает, что невозможно обходится только неизменяемыми переменными. Да и необходимость в явном return
раздражает (:Особенно в анонимных функциях, это ужас какой-то:
{ (a: Int) -> Int in return a + 1 }
Не надо лишний раз раздражаться. Это вредно. Вместо
{ (a: Int) -> Int in return a + 1 }
можно написать
{ $0 + 1 }
{ (a: Int) -> Int in return a + 1 }
можно написать
{ $0 + 1 }
Типы аргументов, тип возвращаемого как и return могут быть опущены. Например:
println({a in a + 1 }(1))
Можно же написать экстеншены к любому типу.
Напишите экстеншен к Bool или к колекции и вы получите семантически нечто похожее.
Напишите экстеншен к Bool или к колекции и вы получите семантически нечто похожее.
Как же Apple задолбал своими попытками сломать совместимость кода с предыдущими версиями iOS…
Тема интересна! Прочитать еще раз на русском вредно не будет. Я за продолжение! И спасибо за начинание!
Знаки вопросов в синтаксисе безумно радуют:
if let t = foo.bar? as? T
{
}
Не очень понимаю зачем перевод, это и есть тот самый «технический английский», который знает любой нормальный разработчик.
Мне кажется, было бы полезно сделать пошаговый tutorial по разработке первого приложения на swift, для тех кто раньше не программировал под ios. Начиная с настройки окружения…
Оставлю это тут swift-info.ru/
Чисто из любопытства, чем синтаксис
предпочтительнее
или даже
?
Дело даже не в моей привычке к С\С++\C#, как минимум приходится делать два лишних нажатия для написания стрелочки (одно из них с шифтом). Мелочь? Из них складываются миллионы строк кода, годы работы, синтаксис должен быть выверен, лаконичен.
func area() -> Double
предпочтительнее
Double func area()
или даже
Double area()
?
Дело даже не в моей привычке к С\С++\C#, как минимум приходится делать два лишних нажатия для написания стрелочки (одно из них с шифтом). Мелочь? Из них складываются миллионы строк кода, годы работы, синтаксис должен быть выверен, лаконичен.
Работая в нормальной IDE я практически никогда не задумываюсь в С++ где ставить (.) а где (->) просто тупо нажимаю (.)
Точно также нотация func area() -> Double набирается примерно fu(Tab)area(Tab)dou(Enter) и ничем по сложности не отличается от Double func area() которая набирается dou(Tab)fu(Tab)area(Enter)
Точно также нотация func area() -> Double набирается примерно fu(Tab)area(Tab)dou(Enter) и ничем по сложности не отличается от Double func area() которая набирается dou(Tab)fu(Tab)area(Enter)
Так как Swift поддерживает функции высшего порядка, использования постфиксного синтаксиса для определения возвращаемого типа позволяет сделать синтаксис более однородным.
Объявление функции:
Объявление переменной, которая хранит функцию отображающую целочисленные значения в целочисленные значения:
Обявление анонимной функции:
Объявление функции, которая возвращает другую функцию:
Объявление функции:
func increment(value: Int) -> Int {
return value + 1
}
Объявление переменной, которая хранит функцию отображающую целочисленные значения в целочисленные значения:
let functionAlias: (Int) -> Int = increment
Обявление анонимной функции:
let incrementer: (Int) -> Int = { (x: Int) -> Int in return x + 1 }
Объявление функции, которая возвращает другую функцию:
func generateIncrementer(step: Int) -> (Int) -> Int {
return { (value: Int) -> Int in return value + step }
}
let addTen = generateIncrementer(10)
addTen(15) // 25
Ух, обилие скобочек и стрелочек прям разгоняют мозговой CPU)
Спасибо за пример!
Спасибо за пример!
На самом деле у Swift'а несколько странный синтаксис, поначалу он показался мне очень похожим на Scala, но если Scala это смесь объектно-ориентированной и фунациональной парадигм с уклоном в функциональную, то Swift выглядит как смесь функциональной и процедурной (ну и капельку объектно-ориентированной тоже) с уклоном в процедурную.
Те же примеры на Scala:
Те же примеры на Scala:
// возвращаемый тип функции выводится автоматически
// последнее выражения функции является возвращаемым значением
def increment(value: Int) = value + 1
// нижнее подчеркивание обозначает, что надо сохранить в переменную функцию, а не возвращаемое ей значение
// (это связано с тем, что функция в Scala может быть вызвана без скобок)
val functionAlias = increment _
val incrementer = (x: Int) => x + 1
def generateIncrementer(step: Int)(value: Int) = value + step
val addTen = generateIncrementer(10) _
addTen(15) // 25
Swift всем показался очень похожим на «что либо из любимых языков».
Например в моем случае — https://groups.google.com/forum/#!topic/golang-nuts/0TaFP4ec6U8/discussion
Например в моем случае — https://groups.google.com/forum/#!topic/golang-nuts/0TaFP4ec6U8/discussion
Дожили. Манулы на русский переводят.
При создании цикла используйте две точки (..), если не хотите включать большее значение в диапазон, и три точки (…), чтобы включить как меньшее, так и большее значения.
В Xcode beta 3 оператор
..
изменился на ..<
И, кстати, если хотите погуглить на эту тему, то вам понадобится название на родном: «Half-Open Range Operator»
А нет ли акой-нибудь книги или хорошего туториала по разработке на swift под iOS с нуля?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Язык программирования Swift. Русская версия