Pull to refresh

Comments 16

Спасибо за перевод, но на мой взгляд все абсолютно понятно только по одному коду, даже если программист совсем не знает английский язык.
Лучшим решением было бы не переводить такие простые вещи, а собирать дайджесты по Swift, на мой взгляд.
Кстати, в Swift есть динамические возможности из Objective C? Было бы интересно посмотреть, как они реализованы в новом языке с учетом опыта других языков программирования.
Swift работает на рантайме Objective C. Однако все не так просто: в общем случае(если не указывать атрибут objc) имена классов мангляться. Когда я проводил свои эксперименты, я даже не совсем понял, во что превращаются свойства, ибо если добавить свойство в класс, то никаких ivar'ов по итогу у него не появлялось(думаю, логично предположить, что значения свойств как и в Obejctive C хранятся в ivar'ах). Вообще немного об этом можно почитать у Mike Ash www.mikeash.com/pyblog/friday-qa-2014-07-18-exploring-swift-memory-layout.html
Если указать @­objc то имена все равно манглятся
Вот и снова ценность поста почти целиком состоит из ценности комментария к нему.
Спасибо за ссылку!
Жду с нетерпением языка с таким вот оператором сравнения:

a ================================================================================================== b


Ну серьезно, куда уж три то равно… понимаю еще два, но три…
Вы ж в курсе что там есть возможность создавать свои операторы? И люди создают, не знаю для фану, или просто от «молодости»…
Дядя книжки пишет, не думаю, что тут дело в «молодости».
Ну оператора строгого соответствия не они придумали, во многих, если не во всех, ОО программных языках он есть.
Да ладно. Только не говорите, что Вы до сих пор не знали о том, что 'тройное равно' есть в PHP и JS.
Люди на javascript же пишут так и ничего, не умер никто.
При вызове методов обязательно ли писать имя переменной значение которой передается в функцию, например вместо point.move(x: 10, y: 20) написать point.move(10, 20)?

Можно ли менять порядок указания значений:
point.move(y: 20, x: 10);

сработает ли такая конструкция

point.move(x: Float = 0, y: Float = 0);

point.move(y: 66);

Спасибо.
1. Использование point.move(10, 20) вызовет ошибку компиляции (external names are required), но можно написать так point.move(10, y: 20) (но только в том случае, если первый аргумент не имеет значения по умолчанию).
2. Менять порядок указания нельзя — первым должен указываться тот аргумент, который является первым в объявлении метода.
3. Конструкция point.move(x: Float = 0, y: Float = 0) не сработает
4. Конструкция point.move(y: 66) сработает если аргумент x имеет значение по умолчанию.

Offtop: точка с запятой (;) в конце необязательна, она указывается если в одной строке есть две операции. Пример:
self.x = x; self.y = y
Вот только начал изучать Swift и вот Ваш offtop прочитал. Интересная вещь. С одной стороны логична, а с другой нет. И вот почему: Есть ли(будут ли) в swift`e такие ситуации, когда одна строка может растянутся на две(как это случалось допустим в c#)?
Sign up to leave a comment.

Articles