Два конструктора интерфейса

Что выведетMiddleбесплатно04-t002

Два конструктора возвращают один и тот же интерфейс: первый — буквальный nil, второй — nil-указатель на тип, который этот интерфейс реализует. Что выведет сравнение их результатов?

main.gogo
1package main2 3import "fmt"4 5type kind struct{}6 7type Doer interface {8	Run()9}10 11func (*kind) Run() {}12 13func MakeNil() Doer {14	return nil15}16 17func MakeTyped() Doer {18	var k *kind19	return k20}21 22func main() {23	x := MakeNil()24	y := MakeTyped()25	fmt.Println(x == y)26}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.