Sobes.tech
Junior — Middle

Qual é a diferença entre um método e uma função, e quais são as características do seu uso?

sobes.tech IA

Resposta da IA

Em Go, uma função é um bloco de código independente que pode ser chamado pelo nome e que pode aceitar parâmetros e retornar valores.

Um método é uma função associada a um tipo específico (por exemplo, uma estrutura). O método é declarado com um receptor, que determina a qual tipo ele pertence.

Características de uso:

  • O método permite trabalhar com dados de um tipo específico, usando o receptor dentro do corpo do método.
  • Os métodos ajudam a organizar o código e a implementar comportamentos para os tipos, aproximando Go do estilo orientado a objetos.

Exemplo:

package main
import "fmt"

type Person struct {
    Name string
}

// Método com receptor do tipo Person
func (p Person) Greet() {
    fmt.Println("Olá, meu nome é", p.Name)
}

// Função comum
func Add(a, b int) int {
    return a + b
}

func main() {
    p := Person{Name: "Ivan"}
    p.Greet() // chamada do método
    fmt.Println(Add(2, 3)) // chamada da função
}