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.