TGViewer
Swift | Вопросы собесов Swift | Вопросы собесов @easy_swift · 2.16K subscribers
Post #1966 280
🤔 Расскажи про две семантики в swift'е

В Swift все типы данных делятся на два вида по семантике хранения и передачи:

🚩Значимая семантика (Value Semantics)

Структуры (struct), перечисления (enum) и кортежи (tuple) передаются по значению, то есть каждое присваивание создаёт копию объекта.
struct User {
var name: String
}

var user1 = User(name: "Alice")
var user2 = user1 // Копия!

user2.name = "Bob"

print(user1.name) // "Alice" (НЕ изменилось)
print(user2.name) // "Bob"


🚩Ссылочная семантика (Reference Semantics)

Классы (class), акторы (actor) и замыкания (closure) передаются по ссылке, то есть несколько переменных могут ссылаться на один и тот же объект.
class User {
var name: String
init(name: String) {
self.name = name
}
}

var user1 = User(name: "Alice")
var user2 = user1 // Передача ссылки!

user2.name = "Bob"

print(user1.name) // "Bob" (ИЗМЕНИЛОСЬ!)
print(user2.name) // "Bob"


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 3
More from @easy_swift
  1. Oct 10, 2026🤔 Что будет, если на serial очереди запустить асинхронную Task? Асинхронная задача начнёт…
  2. Oct 9, 2026🤔 Что известно о Swift Intermediate Language (SIL)? SIL (Swift Intermediate Language) — э…
  3. Oct 9, 2026🤔 Что под капотом стэка? Это абстрактная структура данных, работающая по принципу LIFO (L…
  4. Oct 8, 2026🤔 Как хранить объекты классов в массиве по weak-ссылке? Обычно для этого используют обёрт…
  5. Oct 7, 2026🤔 Как можно итерироваться по строке? Строка — это коллекция символов. Итерироваться можно…
  6. Oct 7, 2026🤔 Какие есть инструменты для работы с потоками? В Swift есть несколько инструментов для р…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →