2016-08-06 29 views

Antwort

5

Es ist nicht mehr als einen Tag für ein einzelnes Feld zu haben, erlaubt. In einem Fall, in dem eine solche Funktionalität benötigt wird, können Sie anstelle Ihrer Struktur type Info map[string]interface{} verwenden.

Oder Sie können beide Typen in Ihrer Struktur verwenden und Methode Details() machen, die das richtige Muster zurückgibt.

type Animation struct { 
    Name string `json:"name"` 
    Repeat int  `json:"repeat"` 
    Speed uint `json:"speed"` 
    Pattern Pattern `json:"pattern"` 
    Frame Pattern `json:"frames"` 
} 

func (a Animation) Details() Pattern { 
    if a.Pattern == nil { 
     return a.Frame 
    } 
    return a.Pattern 
} 
+1

Danke. Ich brauchte so etwas für Retro-Kompatibilität. Das ist gut. –