Что такое underlying type?

Middle
199 просмотров
AFK Offer AI

Underlying type — базовый тип, на котором построен твой тип. Для type MyInt int underlying type будет int. Для type MySlice []string — []string. Это важно для type conversion: можно конвертировать между типами с одинаковым underlying type без unsafe. Также underlying type определяет, какие операции доступны — MyInt можно складывать, потому что underlying type int поддерживает +. В generics constraint ~int означает "любой тип с underlying type int".

Следующий вопрос

Что выведет: for i := 0; i < 3; i++ { go func() { fmt.Println(i) }() }?