2016-08-06 2 views

ответ

5

Нельзя иметь более одного тега для одного поля. В случае, когда требуется такая функциональность, вы можете использовать type Info map[string]interface{} вместо своей структуры.

Или вы можете использовать оба типа в своей структуре и сделать способ Details(), который вернет правильный узор.

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

Спасибо. Мне понадобилось что-то подобное для ретро-совместимости. Это хорошо. –

Смежные вопросы