Назад к вопросам
JuniorТеорияЧасто
Что выведет программа (строки через пробел)?
class Book {
deinit { print("bye") }
}
var anna: Book? = Book()
var boris = anna
anna = nil
print(1)
boris = nil
print(2)1 bye 2
- Ждать
bye 1 2, считая, чтоanna = nilосвобождает объект. Уborisосталась сильная ссылка, и объект живёт доboris = nil. - Ждать
bye 1 bye 2, считая, чтоvar boris = annaкопирует объект. Копируется ссылка, объект один, иdeinitсрабатывает один раз.
- Что выведет программа, если убрать строку
boris = nil? - Почему эту программу нельзя написать со
struct Bookвместоclass Book?