Junior — Middle
Jak je realizován přenos prvků mezi funkcemi a strukturami v jazyce Golang?
sobes.tech AI
Odpověď od AI
V jazyce Go může být předávání prvků mezi funkcemi a strukturami provedeno dvěma hlavními způsoby: podle hodnoty a podle ukazatele.
- Podle hodnoty: kopíruje se samotná struktura nebo proměnná, změny uvnitř funkce neovlivní originál.
- Podle ukazatele: předává se adresa struktury nebo proměnné, což umožňuje funkci měnit původní data.
Příklad:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // změní se pouze kopie
}
func updateByPointer(p *Person) {
p.Age = 30 // změní se originál
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Pokud chcete změnit data uvnitř funkce, předávejte ukazatel na strukturu. Pokud změny nejsou potřeba, můžete předat podle hodnoty.