Sobes.tech
Junior — Middle

Czym różni się metoda od funkcji i jakie są cechy ich użycia?

sobes.tech AI

Odpowiedź od AI

W języku Go funkcja to niezależny blok kodu, który można wywołać po nazwie i który może przyjmować parametry oraz zwracać wartości.

Metoda to funkcja powiązana z określonym typem (np. strukturą). Metoda jest deklarowana z użyciem odbiorcy (receiver), który określa, do jakiego typu należy.

Cechy użytkowania:

  • Metoda pozwala na pracę z danymi konkretnego typu, korzystając z odbiorcy wewnątrz ciała metody.
  • Metody pomagają organizować kod i implementować zachowania dla typów, co przybliża Go do stylu obiektowego.

Przykład:

package main
import "fmt"

type Person struct {
    Name string
}

// Metoda z odbiorcą typu Person
func (p Person) Greet() {
    fmt.Println("Cześć, mam na imię", p.Name)
}

// Funkcja zwykła
func Add(a, b int) int {
    return a + b
}

func main() {
    p := Person{Name: "Ivan"}
    p.Greet() // wywołanie metody
    fmt.Println(Add(2, 3)) // wywołanie funkcji
}