Назад к вопросам
Яндекс Браузер
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 хранится ссылка на этот объект.