Я начинающий разработчик на Go, и у меня давно зреет вопрос о смысле type в Go. Зачем она нужна? Что она даёт? Скорость? Особенно меня волнует, зачем нужна конструкция type .. struct? Если все переменные можно объявить в var?
Если можно, то приведите пример на реальном проекте.
P.S.Я не сильно глуп, но почему-то именно это я не могу понять:(
type создаёт не переменную, а тип данных. Это как typedef из C.
Например у вас есть база данных, и каждая запись в таблице может быть представленна в виде struct.
Делаете type DBRecord struct {... описываете все поля, и затем создаёте переменную var myRecord DBRecord
После этого в эту переменную можно как прочитать данные из БД, так и записать в неё новые данные и добавить в ту же БД.
Для struct можно реализовать методы, используя функции с receiver. Набор методов реализует interface - это есть некий аналог передачи указателя на базовый класс в С++. Его можно передавать, использовать. Вообщем скрывать детали реализации и ориентироваться только на интерфейс.
Вы путаете мягкое и холодное. type - определение типа будущей переменной, var - это создание переменной конкретного типа. Грубо говоря разница между type И var тождественна: Homo Sapiens И Василий Пупкин