В приведенном ниже коде:
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.
https://go.dev/ref/spec#Composite_literals говорит:
Внутри составного литерала массива, среза или типа карты T элементы или ключи карты, которые сами являются составными литералами, могут опускать соответствующий тип литерала, если он идентичен элементу или типу ключа T.
Связанный: Создание массива литерала массива в Golang