Какие плюсы и минусы у структуры

«Какие плюсы и минусы у структуры» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:

  • Value type (копируется при передаче, thread-safe)
  • Нет проблем с retain cycles
  • Автоматически генерирует init
  • Лучшая производительность для небольших данных
  • Подходит для immutable данных

Минусы:

  • Нет наследования (только протоколы)
  • Нет деинициализатора (deinit)
  • Может быть неэффективна для больших данных (из-за копирования)
  • Не поддерживает полиморфизм
// Пример
struct Point {
    var x: Int
    var y: Int

    func distance(to point: Point) -> Double {
        // расчет расстояния
    }
}

// Использование
var p1 = Point(x: 0, y: 0)
let p2 = p1  // Копирование
p1.x = 10    // p2 не изменится