Métodos vs Funções
Parte da seção Lógica & Fluxo do Journey de GO da Coddy — lição 10 de 68.
Embora tanto métodos quanto funções realizem operações em Go, eles servem a propósitos diferentes e possuem padrões de declaração distintos. Compreender essa diferença é crucial para escrever um código claro e organizado.
Uma função é autônoma e independente. Ela não pertence a nenhum tipo específico:
func calculateArea(width, height float64) float64 {
return width * height
}Um método é anexado a um tipo específico por meio de um receptor. Ele pertence a esse tipo e pode acessar seus dados:
func (r Rectangle) area() float64 {
return r.Width * r.Height
}A principal diferença reside em como você os chama. Funções são chamadas diretamente pelo nome, enquanto métodos são chamados em instâncias de seu tipo associado usando a notação de ponto. Essa associação torna os métodos perfeitos para definir comportamentos que pertencem naturalmente aos seus tipos personalizados, enquanto as funções funcionam bem para operações de propósito geral que não precisam estar vinculadas a estruturas de dados específicas.
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 função é autônoma e independente:
func calculateArea(width, height float64) float64 {
return width * height
}Um método é anexado a um tipo específico por meio de um receptor (receiver):
func (r Rectangle) area() float64 {
return r.Width * r.Height
}Funções são chamadas diretamente pelo nome, enquanto métodos são chamados em instâncias usando a notação de ponto.
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