Sobes.tech
Junior — Middle

Čo je rozdiel medzi metódou a funkciou a aké sú ich vlastnosti pri používaní?

sobes.tech AI

Odpoveď od AI

V jazyku Go je funkcia nezávislý blok kódu, ktorý možno volať podľa mena a ktorý môže prijímať parametre a vracať hodnoty.

Metóda je funkcia spojená s určitým typom (napríklad štruktúrou). Metóda je deklarovaná s prijímateľom (receiver), ktorý určuje, ku ktorému typu patrí.

Charakteristiky použitia:

  • Metóda umožňuje pracovať s údajmi konkrétneho typu, pričom vo vnútri tela metódy používa prijímateľa.
  • Metódy pomáhajú organizovať kód a implementovať správanie pre typy, čo približuje Go k objektovo orientovanému štýlu.

Príklad:

package main
import "fmt"

type Person struct {
    Name string
}

// Metóda s prijímateľom typu Person
func (p Person) Greet() {
    fmt.Println("Ahoj, volám sa", p.Name)
}

// Bežná funkcia
func Add(a, b int) int {
    return a + b
}

func main() {
    p := Person{Name: "Ivan"}
    p.Greet() // volanie metódy
    fmt.Println(Add(2, 3)) // volanie funkcie
}