Предложение №12854 висело в трекере с 2015 года и наконец получило статус accepted.
Теперь тип литерала можно будет опускать везде, где компилятор выводит его из контекста:
var x []string = {"a", "b", "c"}
return {}, err
compress.NewReader(r, {Level: compress.BestSpeed})
items = append(items, {id, obj, false})Запись
a := {1, 2, 3} останется ошибкой, слева нет явного типа и выводить нечего.Выигрывают табличные тесты, структуры опций и код с protobuf, где имена типов повторяются десятками. Спор о читаемости команда закрыла так.
gofmt не будет принудительно удалять типы, стиль сложится сам, а gopls получит подсказки, которые покажут пропавшее имя типа прямо в редакторе.В Go 1.27 фича не попадёт. Изменение в компиляторе простое, но нужно обновить экосистему инструментов, поэтому ориентир это Go 1.28.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика