Sobes.tech
Назад к вопросам
Junior — Middle
74

В каком месте будет размещена структура, если внутри неё есть поле, являющееся экземпляром класса?

Компании, где спрашивали
Магнит Тех
Яндекс БраузерЯндекс Браузер

Ответ от нейросети

sobes.tech AI

В iOS, если структура (struct) содержит в себе поле, которое является экземпляром класса (class), то сама структура размещается в стеке, а поле-класс — в куче.

Это связано с тем, что структуры — это типы значений, которые хранятся непосредственно там, где объявлены (обычно в стеке), а классы — ссылочные типы, объекты которых размещаются в куче, а в структуре хранится только ссылка на этот объект.

Пример:

class MyClass {
    var value: Int
    init(value: Int) {
        self.value = value
    }
}

struct MyStruct {
    var obj: MyClass
}

var s = MyStruct(obj: MyClass(value: 10))

Здесь s — структура, размещённая в стеке, а объект MyClass(value: 10) — в куче, а в s.obj хранится ссылка на этот объект.