Sobes.tech
Junior — Middle

Hogyan valósul meg az elemek átadása a függvények és szerkezetek között a Golang nyelvben?

sobes.tech MI

Válasz az MI-től

Go nyelvben az elemek átadása függvények és szerkezetek között két fő módon történhet: érték szerint és mutató szerint.

  • Érték szerint: maga a szerkezet vagy változó másolódik, a függvényen belüli változtatások nem befolyásolják az eredetit.
  • Mutató szerint: a szerkezet vagy változó címe kerül átadásra, ami lehetővé teszi a függvény számára, hogy módosítsa az eredeti adatokat.

Példa:

package main
import "fmt"

type Person struct {
    Name string
    Age  int
}

func updateByValue(p Person) {
    p.Age = 30 // csak a másolat változik
}

func updateByPointer(p *Person) {
    p.Age = 30 // az eredeti változik
}

func main() {
    person := Person{Name: "Ivan", Age: 25}
    updateByValue(person)
    fmt.Println(person.Age) // 25

    updateByPointer(&person)
    fmt.Println(person.Age) // 30
}

Tehát, ha módosítani szeretnéd az adatokat a függvényen belül, mutatóval kell átadni a szerkezetet. Ha nem szükséges változtatás, akkor érték szerint is átadhatod.