O que é uma Interface?
Parte da seção Lógica & Fluxo do Journey de GO da Coddy — lição 12 de 68.
Uma interface em Go é como um contrato que define quais comportamentos um tipo deve ter, sem especificar como esses comportamentos são implementados. Pense nela como uma coleção de assinaturas de métodos que descreve o que algo pode fazer.
Para entender melhor as interfaces, imagine uma tomada elétrica em sua casa.
A tomada tem um formato específico e fornece eletricidade, mas ela não se importa com qual dispositivo você conecta nela. Seja uma luminária, um carregador de celular ou um computador, qualquer dispositivo que tenha o formato de plugue correto pode se conectar e receber energia. A tomada define a "interface" - os requisitos para a conexão.
Em Go, uma interface funciona de forma semelhante. Ela define um conjunto de assinaturas de métodos que um tipo deve ter para se "conectar" a essa interface. Qualquer tipo que possua todos os métodos exigidos satisfaz automaticamente a interface, independentemente do que mais esse tipo possa fazer ou de como ele implementa esses métodos.
Este conceito é poderoso porque permite que você escreva código que funciona com qualquer tipo que possa realizar certos comportamentos, tornando seus programas mais flexíveis e reutilizáveis. Assim como diferentes dispositivos podem usar a mesma tomada, diferentes tipos Go podem todos satisfazer a mesma interface, desde que possuam os métodos necessários.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Folha de consulta
Uma interface em Go define um contrato de assinaturas de métodos que um tipo deve implementar. Qualquer tipo que possua todos os métodos exigidos satisfaz automaticamente a interface.
Interfaces permitem escrever código flexível que funciona com qualquer tipo que possa realizar certos comportamentos, de forma semelhante a como diferentes dispositivos podem usar a mesma tomada, desde que tenham o formato de plugue correto.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Fluxo de Controle Avançado
Switch com `fallthrough`Interrompendo Loops AninhadosContinuando um Loop EspecíficoA Instrução `goto`Recapitulação - Controle de Loop Avançado4Projeto: Lista de Tarefas Simples
Configuração do ProjetoAdicionando uma Tarefa2Structs e Métodos
Definindo Métodos em StructsRecebedores de ValorRecebedores de PonteiroEscolhendo RecebedoresMétodos vs FunçõesRecapitulação - Comportamento de Structs5Mapas em Profundidade
Mapas de StructsPonteiros como Valores de MapVerificando Mapas NilComparando MapasRecapitulação - Contador de Frequência de Palavras3Interfaces (O Básico)
O que é uma Interface?Definindo uma InterfaceImplementando uma InterfaceUsando Tipos de InterfaceInterface VaziaAsserções de TipoType SwitchRecapitulação - Formas e Comportamentos