Начиная с Go 1.11, вложенные типы не поддерживаются.
Обсуждение предложения
Ваша ревизия выглядит намного лучше IMO.
Редактировать: Возможно, это не связано с вопросом, но вы можете использовать внедрение типов, чтобы упростить ваши типы. Однако обратите внимание, что представление отличается:
type Inner struct {
Whatever int
}
type ResolutionValue struct {
Val string
Inner
}
type ResolutionValue2 struct {
Val string
Inner Inner
}
func main() {
a, _ := json.Marshal(ResolutionValue{})
b, _ := json.Marshal(ResolutionValue2{})
fmt.Printf("%s\n%s", a, b)
}
Какие отпечатки:
{"Val":"","Whatever":0}
{"Val":"","Inner":{"Whatever":0}}