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.