Sobes.tech
Junior — Middle

Golang dilində funksiyalar və strukturlar arasında elementlərin ötürülməsi necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, funksiyalar və strukturlar arasında elementlərin ötürülməsi iki əsas üsulla həyata keçirilə bilər: dəyər və göstərici ilə.

  • Dəyər ilə: struktur və ya dəyişən özü kopyalanır, funksiyada edilən dəyişikliklər orijinala təsir etmir.
  • Göstərici ilə: struktur və ya dəyişənin ünvanı ötürülür, bu da funksiyaya orijinal məlumatları dəyişdirməyə imkan verir.

Nümunə:

package main
import "fmt"

type Person struct {
    Name string
    Age  int
}

func updateByValue(p Person) {
    p.Age = 30 // yalnız kopya dəyişəcək
}

func updateByPointer(p *Person) {
    p.Age = 30 // orijinal dəyişəcək
}

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

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

Beləliklə, funksiyada məlumatları dəyişdirmək istəyirsinizsə, struktura göstərici ötürün. Əgər dəyişikliklər lazım deyilsə, dəyər ilə ötürə bilərsiniz.