Junior — Middle
Mis vahe on meetodi ja funktsiooni vahel ning millised on nende kasutamise omadused?
sobes.tech AI
Vastus AI-lt
In Go, funktsioon on sõltumatu koodiplokk, mida saab kutsuda nime järgi ning mis võib vastu võtta parameetreid ja tagastada väärtusi.
Meetod on funktsioon, mis on seotud konkreetse tüübiga (näiteks struktuuriga). Meetod deklaritakse vastuvõtja (receiver) abil, mis määrab, millisele tüübile see kuulub.
Kasutamise omadused:
- Meetod võimaldab töötada konkreetse tüübi andmetega, kasutades vastuvõtjat meetodi kehas.
- Meetodid aitavad organiseerida koodi ja rakendada käitumist tüüpidele, mis lähemale toovad Go objektorienteeritud stiilile.
Näide:
package main
import "fmt"
type Person struct {
Name string
}
// Meetod, mille vastuvõtja on Person
func (p Person) Greet() {
fmt.Println("Tere, minu nimi on", p.Name)
}
// Tavaline funktsioon
func Add(a, b int) int {
return a + b
}
func main() {
p := Person{Name: "Ivan"}
p.Greet() // meetodi kutsumine
fmt.Println(Add(2, 3)) // funktsiooni kutsumine
}