June 2017
Beginner
1091 pages
22h 9m
English
To close this chapter with a bang, we will implement a mechanism in which each Avatar implementation takes a turn in trying to get a URL for a user. If the first implementation returns the ErrNoAvatarURL error, we will try the next and so on until we find a useable value.
In avatar.go, underneath the Avatar type, add the following type definition:
type TryAvatars []Avatar
The TryAvatars type is simply a slice of Avatar objects that we are free to add methods to. Let's add the following GetAvatarURL method:
func (a TryAvatars) GetAvatarURL(u ChatUser) (string, error) {
for _, avatar := range a {
if url, err := avatar.GetAvatarURL(u); err == nil {
return url, nil
}
}
return "", ErrNoAvatarURL
}
This means that
Read now
Unlock full access