Метод наборов .symmetricDifference()
Sets (наборы) представляют собой неупорядоченные коллекции уникальных элементов. Вы можете создать новый набор из элементов, содержащихся в каждом наборе, но исключить одинаковые для обоих наборов элементы. Для этого используйте метод .symmetricDifference().
Sets (наборы) представляют собой неупорядоченные коллекции уникальных элементов. Вы можете создать новый набор из элементов, содержащихся в каждом наборе, но исключить одинаковые для обоих наборов элементы. Для этого используйте метод .symmetricDifference().
👍11🤮1
Полезный материал о базовых вещах с памятью
Изучая иос не нужно забывать, что этот мир яблок не отдельный остров, который далек от компьютерных наук. А лишь абстракция над общим устройством компьютеров
https://youtu.be/TajLTcjBgIg
Изучая иос не нужно забывать, что этот мир яблок не отдельный остров, который далек от компьютерных наук. А лишь абстракция над общим устройством компьютеров
https://youtu.be/TajLTcjBgIg
YouTube
Лекция 3. Работа с памятью, выполнение программ (Программирование на C++, часть 1)
https://compscicenter.ru/
Лекция №3 в курсе "Программирование на C++, часть " (осень 2018).
Преподаватель курса: Валерий Михайлович Лесин
Лекция №3 в курсе "Программирование на C++, часть " (осень 2018).
Преподаватель курса: Валерий Михайлович Лесин
❤7👍1🤮1
Optional Binding
Optional Binding позволяет проверить, содержит ли опционал .some-значение. Если содержит, извлекает его и предоставляет к нему доступ с помощью локальной переменной (обычно константной). Optional Binding работает в контексте конструкций if, while и guard. Если опционал в состоянии nil, запускается блок else.
Optional Binding позволяет проверить, содержит ли опционал .some-значение. Если содержит, извлекает его и предоставляет к нему доступ с помощью локальной переменной (обычно константной). Optional Binding работает в контексте конструкций if, while и guard. Если опционал в состоянии nil, запускается блок else.
❤14🤮1
Media is too big
VIEW IN TELEGRAM
Для чего нужны closures (замыкания) в Swift и как с ними работать?
📖 Замыкания - это мощная концепция, которая позволяет использовать множество различных шаблонов программирования.
Однако для многих начинающих программистов closures могут быть сложными в понимании и дальнейшем использовании.
Это особенно верно, когда замыкания используются в асинхронном контексте.
Например, когда они используются в качестве completion handlers или передаются в приложении, чтобы их можно было вызвать позже.
В своём посте автор объясняет, что такое замыкания в Swift, как они работают и, самое главное, показывает различные примеры замыканий с возрастающей сложностью.
🧐 К концу этой заметки автор обещает объяснить всё, что необходимо знать для эффективного использования замыканий в приложении.
📖 Замыкания - это мощная концепция, которая позволяет использовать множество различных шаблонов программирования.
Однако для многих начинающих программистов closures могут быть сложными в понимании и дальнейшем использовании.
Это особенно верно, когда замыкания используются в асинхронном контексте.
Например, когда они используются в качестве completion handlers или передаются в приложении, чтобы их можно было вызвать позже.
В своём посте автор объясняет, что такое замыкания в Swift, как они работают и, самое главное, показывает различные примеры замыканий с возрастающей сложностью.
🧐 К концу этой заметки автор обещает объяснить всё, что необходимо знать для эффективного использования замыканий в приложении.
👍7🤮1
Вариативные параметры
Вариативный параметр принимает ноль или более значений определенного типа. Он обозначается тремя последовательными точками, после типа данных параметра в декларации функции. Данный метод – хорошая альтернатива, когда для работы нам нужно только одно значение. Swift может конвертировать одно значение в набор переменных.
Вариативный параметр принимает ноль или более значений определенного типа. Он обозначается тремя последовательными точками, после типа данных параметра в декларации функции. Данный метод – хорошая альтернатива, когда для работы нам нужно только одно значение. Swift может конвертировать одно значение в набор переменных.
👍6👎3
Полезная статья о том, как улучшить качество кода
Разница в том, что тут автор и на словах предлагает решение, и инструменты, которые помогают следить за качеством кода и улучшать его! 👍
Читаем и улучшаем качество кода 🔥
https://kwnstantinosnikoloutsos.medium.com/who-else-wants-to-improve-ios-codebase-quality-3f7c77a2dd10
Разница в том, что тут автор и на словах предлагает решение, и инструменты, которые помогают следить за качеством кода и улучшать его! 👍
Читаем и улучшаем качество кода 🔥
https://kwnstantinosnikoloutsos.medium.com/who-else-wants-to-improve-ios-codebase-quality-3f7c77a2dd10
Medium
Who else Wants to improve iOS codebase quality
Make your codebase a better version of itself
🔥8🤮2👍1
3 способа использования enum, которые должны быть в вашем арсенале
💪 Перечисление (enum) - это очень мощный тип в Swift. Каждый из нас использует его практически в каждом проекте.
В публикации рассматривается три блока:
1️⃣ Сложные случаи с привязкой значений.
2️⃣ Если нас интересуют конкретный кейс перечисления, то можно использовать
3️⃣ Если связанное значение optional, то также можно использовать соответствующий шаблон. Это будет более понятно на конкретных примерах из статьи.
💪 Перечисление (enum) - это очень мощный тип в Swift. Каждый из нас использует его практически в каждом проекте.
В публикации рассматривается три блока:
1️⃣ Сложные случаи с привязкой значений.
2️⃣ Если нас интересуют конкретный кейс перечисления, то можно использовать
if let
и guard let
.3️⃣ Если связанное значение optional, то также можно использовать соответствующий шаблон. Это будет более понятно на конкретных примерах из статьи.
🔥4🤮2
Проблемы многопоточки: Race Condition vs Data Race
Как все знаю многопоточка нужна для ускорения задач и их фрагментов на устройствах. Но все не так просто и любой инструмент дает свои проблемы. Выше, в опросе, мы уже столкнулись с гонкой.
Race condition и data race — две разные проблемы многопоточности, которые часто путают.
Эти проблемы очень похожи, но есть различия:
Race Condition — это недостаток, возникающий, когда время или порядок событий влияют на правильность программы.
Data Race — это состояние когда разные потоки обращаются к одной ячейке памяти без какой-либо синхронизации и как минимум один из потоков осуществляет запись.
Как все знаю многопоточка нужна для ускорения задач и их фрагментов на устройствах. Но все не так просто и любой инструмент дает свои проблемы. Выше, в опросе, мы уже столкнулись с гонкой.
Race condition и data race — две разные проблемы многопоточности, которые часто путают.
Эти проблемы очень похожи, но есть различия:
Race Condition — это недостаток, возникающий, когда время или порядок событий влияют на правильность программы.
Data Race — это состояние когда разные потоки обращаются к одной ячейке памяти без какой-либо синхронизации и как минимум один из потоков осуществляет запись.
👍3💩2
🧑💻Class && Struct (классы и структуры)
💻Отличный материал, который раскрывает основные отличия структуры от классов, а так же их применение!
По умолчанию Apple рекомендует использовать структуры. Структуры также полезны в следующих сценариях:
- Используйте структуры для простых типов данных. Воспринимайте их как простые базы данных, которые вы можете использовать в своем коде. Поскольку они четко определены и часто не нуждаются в сложных отношениях между объектами.
- В многопоточной среде, например, с подключением к базе данных в другом потоке, структуры более безопасны. и могут быть безопасно скопированы из одного потока в другой. Классы не имеют присущей им безопасности, если только они не намеренно сделаны поточно-ориентированными.
- Когда свойства структуры в основном являются значимыми типами, например String, имеет смысл обернуть их в структуру вместо класса.
Использование структур имеет дополнительное преимущество - вам проще анализировать изменения данных в вашем коде. Когда тип является структурой, вы можете быть уверены, что никакая другая часть вашего кода не сможет удерживать ссылку на объект. То есть структура не может быть изменена какой-либо другой частью вашего кода.
А дальше в статье https://habr.com/ru/post/592341/
💻Отличный материал, который раскрывает основные отличия структуры от классов, а так же их применение!
По умолчанию Apple рекомендует использовать структуры. Структуры также полезны в следующих сценариях:
- Используйте структуры для простых типов данных. Воспринимайте их как простые базы данных, которые вы можете использовать в своем коде. Поскольку они четко определены и часто не нуждаются в сложных отношениях между объектами.
- В многопоточной среде, например, с подключением к базе данных в другом потоке, структуры более безопасны. и могут быть безопасно скопированы из одного потока в другой. Классы не имеют присущей им безопасности, если только они не намеренно сделаны поточно-ориентированными.
- Когда свойства структуры в основном являются значимыми типами, например String, имеет смысл обернуть их в структуру вместо класса.
Использование структур имеет дополнительное преимущество - вам проще анализировать изменения данных в вашем коде. Когда тип является структурой, вы можете быть уверены, что никакая другая часть вашего кода не сможет удерживать ссылку на объект. То есть структура не может быть изменена какой-либо другой частью вашего кода.
А дальше в статье https://habr.com/ru/post/592341/
Хабр
Swift. Class && Struct (классы и структуры) ч.1
Предисловие Данный материал, рассчитан на новичков в разработке, сконцентрированных на языке Swift, где я простым языком постараюсь максимально доходчиво донести базовые вещи, которые иногда бывает...
🔥7😱2
Верстка кодом🗿
Отличный материал, хорошая подача. Для тех кто хочет научиться верстать UI элементы кодом. Советую к прочтению. 🏰
https://www.hackingwithswift.com/read/8/2/building-a-uikit-user-interface-programmatically
Отличный материал, хорошая подача. Для тех кто хочет научиться верстать UI элементы кодом. Советую к прочтению. 🏰
https://www.hackingwithswift.com/read/8/2/building-a-uikit-user-interface-programmatically
👍10