Sobes.tech
Junior — Middle

Kuo skiriasi metodas nuo funkcijos ir kokios yra jų naudojimo ypatybės?

sobes.tech AI

Atsakymas iš AI

Go kalboje funkcija yra nepriklausomas kodo blokas, kurį galima iškviesti pagal pavadinimą ir kuris gali priimti parametrus bei grąžinti reikšmes.

Metodas yra funkcija, susieta su tam tikru tipu (pvz., struktūra). Metodas deklaruojamas su priėmėju (receiver), kuris nustato, prie kurio tipo jis priklauso.

Naudojimo ypatumai:

  • Metodas leidžia dirbti su konkretaus tipo duomenimis, naudojant priėmėją metodo kūne.
  • Metodai padeda organizuoti kodą ir įgyvendinti elgseną tipams, kas artina Go prie objektinio programavimo stiliaus.

Pavyzdys:

package main
import "fmt"

type Person struct {
    Name string
}

// Metodas su priėmėju iš tipo Person
func (p Person) Greet() {
    fmt.Println("Labas, mano vardas", p.Name)
}

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

func main() {
    p := Person{Name: "Ivan"}
    p.Greet() // metodo iškvietimas
    fmt.Println(Add(2, 3)) // funkcijos iškvietimas
}