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.
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