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
}