и посмотреть медиа
Swift | Interview Questions
и посмотреть медиа
Swift interview questions, tests and tasks for iOS developers in Telegram.
Swift interview questions, tests and tasks for iOS developers in Telegram.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
The channel is dedicated to preparing for Swift language interviews. It contains current questions, tests, practical tasks and vacancy information. Ideal for beginner and experienced iOS developers who want to refresh their knowledge and successfully pass interviews.
🤔 Почему Apple предпочитает использовать value type по умолчанию? Apple предпочитает value types (структуры struct) по умолчанию в Swift по нескольким причинам 🟠Безопасность многопоточного кода struct копируется при передаче, а не передается по ссылке, как class. Это снижает вероятность гонки данных (data race), когда один поток изменяет объект, а другой читает его одновременно. В многопоточной среде это делает код более безопасным. struct Point { var x: Int var y: Int } var p1 = Point(x: 1, y: 2) var p2 = p1 // p2 - это копия, изменения в p2 не затронут p1 p2.x = 10 print(p1.x) // 1 print(p2.x) // 10 🟠Производительность struct хранятся в стеке, а не в куче, что делает их создание и удаление быстрее. Куча (heap) требует управления памятью (ARC – Automatic Reference Counting), а struct — нет. class MyClass { var value = 0 } // В куче (heap), управляется ARC struct MyStruct { var value = 0 } // В стеке (stack), копируется при передаче 🟠Предсказуемость и неизменяемость struct ведут себя как примитивные типы (Int, Double), что делает код предсказуемым. Их изменение происходит локально, без неожиданных эффектов в других частях программы. class Car { var speed: Int init(speed: Int) { self.speed = speed } } var car1 = Car(speed: 60) var car2 = car1 // car2 - это ссылка на тот же объект car2.speed = 100 // Изменение затрагивает car1! print(car1.speed) // 100 (хотя мы меняли car2!) 🟠Использование в стандартной библиотеке Swift изначально построен на struct: Int, Double, Bool, Array, Dictionary, String — это структуры. Это делает язык более безопасным и производительным. var arr1 = [1, 2, 3] var arr2 = arr1 // Копия массива, а не ссылка! arr2.append(4) print(arr1) // [1, 2, 3] (не изменился!) print(arr2) // [1, 2, 3, 4] (новый массив) 🚩Когда использовать `class`? Хотя struct — предпочтительный выбор, class нужен, когда: Нужна ссылочная семантика (например, объект должен изменяться в разных местах кода). Есть сложные иерархии наследования. Требуется работа с Objective-C (NSObject). Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!