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
}