К вопросам

Встраивание типов

Тест · Вопрос 5 из 6

Тест

Вопрос 5

Что произойдёт при компиляции? (встраивание методов, 1/2)

Go
package main

import "fmt"

type A struct{}
func (A) M() int { return 1 }

type B struct{}
func (B) M() int { return 2 }

type C struct{ A; B }

func main() {
	var c C
	fmt.Println(c.M())
}
Варианты ответа

Выберите один ответ

У `C` с встроенными `A` и `B` поднимаются оба метода `M` с одинаковой сигнатурой — вызов `c.M()` неоднозначен, нужно писать `c.A.M()` или `c.B.M()`.