DevPrep

Все темы › Что выведет? Головоломки с собеседований

Что выведет код с массивом классов? Copy-on-Write

Middle PRO

Задача

class Human {
    var name: String
    init(name: String) { self.name = name }
}

let man = Human(name: "Artem")
let woman = Human(name: "Dasha")
let family = [man, woman]
let anotherFamily = family
anotherFamily.last?.name = "Vika"
print(family.last?.name)

Что напечатается? Как сделать, чтобы вывелось Dasha? Что такое copy-on-write и у каких типов он есть? Работает ли CoW со всеми структурами?

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store