Um tipo de interface especifica um conjunto de métodos denominado sua interface. Uma variável de tipo de interface pode armazenar um valor de qualquer tipo com um conjunto de métodos que é qualquer superconjunto da interface.
// Interface de um arquivo
interface {
Read(b Buffer) bool
Write(b Buffer) bool
Close()
}
Mais de um tipo pode implementar uma interface. Exemplo, se dois tipos S1 e S2 têm o método definido.
func (p T) Read(b Buffer) bool { return … }
func (p T) Write(b Buffer) bool { return … }
func (p T) Close() { … }