Назад к задачам
Junior — Senior
7

Какой вывод получим в примере №40

Компании, где спрашивали:

AvitoAvito
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В этом Swift‑примерe объявлен протокол без требований, к которому добавлено расширение с вычисляемым свойством value. Класс, реализующий протокол, также объявляет своё свойство value. Затем создаётся экземпляр класса и переменная типа протокола, ссылающаяся на тот же объект. Нужно понять, какие строки будет печатать print при обращении к свойству через переменную класса и через переменную протокола.

protocol TheProtocol {
    
}

extension TheProtocol {
    var value: String {
        return "in TheProtocol"
    }
}

class TheClass: TheProtocol {
    var value: String {
        return "in TheClass"
    }
}

let myClass = TheClass()
let myProtocol: TheProtocol = myClass

print(myClass.value)      // ?
print(myProtocol.value)   // ?