DevPrep

All topics › What does it print? Interview puzzles

weak var person = Person(): what gets printed?

Middle PRO

Task

class Person {
    var name = "Bill"

    func sayHello() {
        doAction { [weak self] in
            print("Hello my name is \(self?.name)")
        }
    }

    private func doAction(_ closure: @escaping () -> Void) {
        DispatchQueue.main.asyncAfter(deadline: .now() + 1) { closure() }
    }

    deinit { print("Person deiniting") }
}

weak var person: Person? = Person()
person?.sayHello()
person = nil

The rest of this answer, with code and interview follow-ups, is in the DevPrep app.

Read the full answer in DevPrep

Practice this before your interview

DevPrep turns these answers into one-minute challenges: what does this code print, find the bug, mock interviews. One challenge a day.

Get DevPrep on the App Store