Вопросы с тегом «swift-language»

Swift - это язык программирования, разработанный Apple для создания приложений iOS и OS X. Swift основан на C и Objective-C.

115
Как Swift может быть намного быстрее, чем Objective-C в этих сравнениях?

Apple представила свой новый язык программирования Swift на WWDC14 . В презентации они провели сравнение производительности Objective-C и Python. Ниже приведено изображение одного из их слайдов, сравнение этих трех языков, выполняющих некоторую сложную сортировку объектов: Был еще более невероятный...

58
Почему программа использует закрытие?

После прочтения многих постов, объясняющих здесь замыкания, мне все еще не хватает ключевой концепции: зачем писать замыкания? Какую конкретную задачу будет выполнять программист, которая лучше всего подходит для закрытия? Примерами замыканий в Swift являются обращения к NSUrl и использование...

53
Соглашения о присвоении имен протоколу Swift [закрыто]

Исходя из в основном фона c #, я привык использовать термин «интерфейс» для описания объекта без реализации, определяющей поведение. В c # соглашение заключается в добавлении имен интерфейсов с помощью «I», например IEnumerable, и т. Д. Конечно, у концепции разные названия на разных языках. В Swift...

47
Зачем разрабатывать современный язык без механизма обработки исключений?

Многие современные языки предоставляют богатые функции обработки исключений , но язык программирования Apple Swift не предоставляет механизм обработки исключений . Несмотря на то, что я погружен в исключения, мне трудно понять, что это значит. Swift имеет утверждения и, конечно, возвращает...

38
Современные языки все еще используют генераторы парсеров?

Я исследовал о наборе компиляторов GCC на википедии здесь , когда это придумал: GCC начал использовать парсеры LALR, сгенерированные с помощью Bison, но постепенно переключился на рукописные парсеры с рекурсивным спуском; для C ++ в 2004 году и для C и Objective-C в 2006 году. В настоящее время все...

24
Борьба с циклическими зависимостями в модульных тестах

Я пытаюсь попрактиковаться в TDD, используя его для разработки простого типа Bit Vector. Я использую Swift, но это не зависит от языка. My BitVector- это объект, structкоторый хранит один UInt64и представляет API, который позволяет вам рассматривать его как коллекцию. Детали не имеют большого...

20
Почему Swift не требует точек с запятой? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Обычно я пишу код на языке C # или Objective-C и недавно взял на себя...

13
По каким причинам вы бы использовали отдельное расширение класса для каждого делегата в Swift?

Я работал над учебником Рэя Вендерлиха и заметил, что автор использует расширения класса для хранения обратных вызовов делегата, а не для обработки их в самом классе, то есть: делегировать обратные вызовы внутри расширения класса: extension LogsViewController :...

10
Зачем Свифту нужны свидетели?

Я пытаюсь прочитать подробности реализации Swift, и одну вещь, которую я не могу прибить, - это «таблицы свидетелей». Похоже, это отдельный указатель vtable, используемый для структур. Но зачем тебе это? Структуры копируются по значению, так что вы уже знаете во время компиляции, какого они типа....

10
Это хорошая практика, чтобы обернуть связанный набор свойств в свою собственную структуру / класс?

Написание объекта User в Swift, хотя мой вопрос касается любого строго типизированного языка. Пользователь может иметь несколько ссылок (FacebookProfile, InstagramProfile и т. Д.). Несколько вопросов по этому поводу. Это хорошая практика, чтобы обернуть ссылки в свой собственный объект? struct User...

9
Почему Swift сначала инициализирует собственные поля подкласса?

В языке Swift, чтобы инициализировать экземпляр, нужно заполнить все поля этого класса и только потом вызывать суперконструктор: class Base { var name: String init(name: String) { self.name = name } } class Derived: Base { var number: Int init(name: String, number: Int) { // won't compile if...