in Golang

Go Pointer

Bugüne kadar hep değişkenler oluşturduk ve onların değerlerini değiştirerek programlar yazdık. Yani yazdığımız kod belleğe hunharca yüklendi.

Her oluşturduğumuz değişken bellekte yeni bir birimi işgal etti ve biz o işgal sonucunda değişkenimizi istediğimiz zaman kullandık.

İşte işaretçiler dediğimiz şey ise pointer‘lar yani değerin hafızaki yerini mimler.

package main

import "fmt"

func main() {

         a := 12 
         b := &a
         

         fmt.Println(b)
         fmt.Println(*b)

         *b = 23
         
         fmt.Println(a)
         
}

Burada ben bir a değişkeni oluşturdum ve değerini 12 verdim. Daha sonra b değişkeni oluşturdum ve bu değişkene a’nın değerini değil yerini atadım. Yani hem a hem b ikisi de hafızada aynı yere bakıyor. Ve özellikle b yi hafızadaki yerini göstersin diye yazdırdım.

sonra b yi nasıl okuyacağımız da

fmt.Println(*b)

burada belirtildi. İşaretleyiciler ile bir değeri mimlediğinizde onun değerini okumak için * simgesi kullanıyoruz.

Yine onun değerini değiştirmek için de  *b=23  dediğimizde o yerdeki değer değişecektir.

En son a yı hiç değiştirmediğimiz halde 23 olmasını bekliyoruz ve bu kodun çıktısı;

0x10410020
12
23

https://play.golang.org/p/swHV_pEFRw

Write a Comment

Comment