Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Проверка корректности type assertion между интерфейсами

Проверка корректности type assertion между интерфейсами

Условие задачи

Необходимо определить что выведет программа. Допустим ли type assertion из одного интерфейса в другой и приведёт ли выполнение программы к ошибке времени выполнения или успешно вызовет соответствующие методы

gotype Foo struct{}

func (f *Foo) A() {}
func (f *Foo) B() {}
func (f *Foo) C() {}

type AB interface {
  A()
  B()
}

type BC interface {
  B()
  C()
}

func main() {
  var a int
  var f AB = &Foo{}
  y := f.(BC) // сработает ли такой type-assertion?
  y.A()       // а этот вызов?
  _ = y
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта