Sobes.tech
Junior — Middle

Kāda ir atšķirība starp metodi un funkciju un kādas ir to izmantošanas īpatnības?

sobes.tech AI

Atbilde no AI

Go valodā funkcija ir neatkarīgs koda bloks, kuru var izsaukt pēc nosaukuma un kurš var pieņemt parametrus un atgriezt vērtības.

Metode ir funkcija, kas ir saistīta ar konkrētu tipu (piemēram, struktūru). Metode tiek deklarēta ar saņēmēju (receiver), kas nosaka, pie kura tipa tā pieder.

Lietošanas īpatnības:

  • Metode ļauj strādāt ar konkrēta tipa datiem, izmantojot saņēmēju metodes ķermenī.
  • Metodes palīdz organizēt kodu un īstenot uzvedību tipiem, kas Go tuvinās objektorientētajam stilam.

Piemērs:

package main
import "fmt"

type Person struct {
    Name string
}

// Metode ar saņēmēju no tipa Person
func (p Person) Greet() {
    fmt.Println("Sveiki, mani sauc", p.Name)
}

// Parasta funkcija
func Add(a, b int) int {
    return a + b
}

func main() {
    p := Person{Name: "Ivan"}
    p.Greet() // metodes izsaukums
    fmt.Println(Add(2, 3)) // funkcijas izsaukums
}