Sobes.tech
Junior — Middle

Golang dilinde fonksiyonlar ve yapılar arasında öğelerin iletimi nasıl gerçekleştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, fonksiyonlar ve yapılar arasında öğelerin aktarımı iki ana yöntemle yapılabilir: değer ile ve gösterici ile.

  • Değer ile aktarım: Yapı veya değişken kendisi kopyalanır, fonksiyon içindeki değişiklikler orijinali etkilemez.
  • Gösterici ile aktarım: Yapının veya değişkenin adresi iletilir, bu da fonksiyonun orijinal verileri değiştirmesine olanak tanır.

Örnek:

package main
import "fmt"

type Person struct {
    Name string
    Age  int
}

func updateByValue(p Person) {
    p.Age = 30 // sadece kopya değişir
}

func updateByPointer(p *Person) {
    p.Age = 30 // orijinal değişir
}

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

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

Bu nedenle, fonksiyon içinde verileri değiştirmek istiyorsanız, yapıya bir gösterici iletin. Değişiklik gerekmezse, değeri iletebilirsiniz.