Мне любопытно посмотреть, есть ли способ упорядочить карту или структуру из строки и шаблона Go (обратное значение template.Execute
)
Например, допустим, у нас есть следующеешаблон для шаблона имени файла
const NameTemplate = `{{ .Os.Type }}/{{ .Os.Variant }}!{{ .Os.Version }}!{{ .Name }}!{{ .Version }}`
И скажем, у нас есть следующая карта (используя структуру в моем решении, но я буду использовать карту здесь для простоты)
data := map[string]interface{}{
"Name": "some-name",
"Version": "1.0",
"Os": map[string]interface{}{
"Type": "linux",
"Variant": "debian",
"Version": "9.0",
},
}
Выполнение tmpl.Execute(NameTemplate, data)
приведет к linux/debian!9.0!some-name!1.0
Теперь, что если бы у нас была эта строка linux/debian!9.0!some-name!1.0
и шаблон, определенный выше NameTemplate
.Есть ли простой способ получить карту (или структуру), подобную той, которая определена в data
?