No exemplo anterior, vimos que uma função tinha como parâmetro uma interface, porém ela recebeu como argumento structs. O que aconteceu?
Quando uma struct é passada como argumento aonde se espera uma interface, a linguagem implicitamente converte a sua struct para a interface, ou seja, dentro da função, nós estamos lidando com uma interface em si.
Mas como pudemos chamar então um método que estava definido para as structs?
Acontece que quando uma struct é convertida em uma interface, você só terá acesso aos métodos que a interface definiu.
Por esse motivo que, se tentarmos executar um método em uma interface que ela não tenha definido, iremos gerar um panic.
Isso acontece mesmo que a struct que foi convertida possuisse esse método. Observe o exemplo ao lado para entender na prática.