Вступить в клуб →
сложнаявопросSwift: типы, опционалы и ARC

Метод из расширения протокола: какой из двух вызовов уйдёт в реализацию структуры

protocol AnalyticsSending {
    func send(event: String)
}

extension AnalyticsSending {
    func send(event: String) { print("protocol send") }
    func flush() { print("protocol flush") }
}

struct AppAnalytics: AnalyticsSending {
    func send(event: String) { print("struct send") }
    func flush() { print("struct flush") }
}

let analytics: AnalyticsSending = AppAnalytics()
analytics.send(event: "open")
analytics.flush()

Что будет напечатано?

  • struct send / struct flush
  • protocol send / protocol flush
  • struct send / protocol flush
  • protocol send / struct flush

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела