Sobes.tech
Junior — Middle

V čem se liší metoda od funkce a jaké jsou jejich vlastnosti při použití?

sobes.tech AI

Odpověď od AI

V jazyce Go je funkce nezávislý blok kódu, který lze volat podle jména a který může přijímat parametry a vracet hodnoty.

Metoda je funkce spojená s určitým typem (například strukturou). Metoda je deklarována s příjemcem (receiver), který určuje, ke kterému typu patří.

Vlastnosti použití:

  • Metoda umožňuje pracovat s daty konkrétního typu, přičemž uvnitř těla metody používá příjemce.
  • Metody pomáhají organizovat kód a implementovat chování pro typy, což přibližuje Go k objektově orientovanému stylu.

Příklad:

package main
import "fmt"

type Person struct {
    Name string
}

// Metoda s příjemcem typu Person
func (p Person) Greet() {
    fmt.Println("Ahoj, jmenuji se", p.Name)
}

// Obvyklá funkce
func Add(a, b int) int {
    return a + b
}

func main() {
    p := Person{Name: "Ivan"}
    p.Greet() // volání metody
    fmt.Println(Add(2, 3)) // volání funkce
}