Sobes.tech
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.