Упрощение синтаксиса инициализации переменных go

В приведенном ниже коде:

var v1 []string = []string{"1"}
var v2 map[string][]string = map[string][]string{"a": []string{"1"}}

Второй можно упростить следующим образом:

var v2 map[string][]string = map[string][]string{"a": {"1"}}

в то время как первое не может быть записано как:

var v1 []string = {"1"}

Я не знаю, в какой версии в Go добавлен этот упрощенный синтаксис, и где его можно использовать, почему []string нельзя упростить?

🤔 А знаете ли вы, что...
Go поддерживает множество платформ, включая Windows, Linux и macOS.


58
1

Ответ:

Решено

https://go.dev/ref/spec#Composite_literals говорит:

Внутри составного литерала массива, среза или типа карты T элементы или ключи карты, которые сами являются составными литералами, могут опускать соответствующий тип литерала, если он идентичен элементу или типу ключа T.

Связанный: Создание массива литерала массива в Golang