Dal spec:
Un incassato deve essere specificato come un nome di tipo T o come un puntatore a un nome di tipo non-interfaccia * T e T stesso potrebbe non essere un tipo di puntatore.
Si vede che si parla di un "nome tipo".
I tipi denominati sono specificati da un nome di tipo (possibilmente qualificato); i tipi senza nome vengono specificati utilizzando un letterale di tipo, che compone un nuovo tipo da tipi esistenti.
In altre parole, una mappa o una sezione non possono essere anonimi a meno che non siano definiti come un tipo con nome. Per esempio:
type MyMap map[string]string
type customMap struct{
MyMap
ordered []string
}
Tuttavia, anche se si incorpora MyMap o un tipo slice, si sarebbe non essere ancora in grado di indicizzare customMap. Solo i campi e i metodi possono essere "promossi" quando si incorpora. Per tutto il resto si comportano come un altro campo. Nell'esempio di cui sopra, MyMap non ha alcun campo o metodi e quindi equivale a:
type customMap struct{
MyMap MyMap
ordered []string
}
fonte
2014-10-19 03:54:11
Potete vedere qui (http://stackoverflow.com/a/26194639/6309) un altro tentativo di incorporare un tipo senza nome. Anche fallito. – VonC