Обнаружение ошибок утверждения типа в приведенном ниже примере.
Ошибки:
49: невозможно преобразовать z (тип IZoo) в тип Zoo: требуется утверждение типа
49: нельзя назначить Zoo(z).animals
type IAnimal interface {}
type IZoo interface {}
type Zoo struct {
animals map[string]IAnimal
}
func NewZoo() *Zoo {
var z IZoo = &Zoo{}
Zoo(z).animals = map[string]IAnimal{} // cannot convert z (type IZoo) to type Zoo: need type assertion
return z // cannot use z (type IZoo) as type *Zoo in return argument: need type assertion
}