Turkish Golang Tutorial Guide #6 : Pointers

in #utopian-io7 years ago

Hi everyone, this is a Turkish tutorial content about Golang (Go) programming language. It will be a contet serial abut this language. This post will be about pointers. So, thank you for reading!

Pointers



source

Go'da pointerları ya da diğer adı ile işaretçileri öğrenmek kolay ve eğlencelidir. Bazı Go programlama görevleri işaretçiler kullanılarak gerçekleştirilir. Dolayısıyla, iyi bir Go programcısı olmak için işaretçileri öğrenmek gerekir aslında bu durum bir çok dil için geçerli. İşaretçiler veri yapılarını öğrenirken, veri yapıları ise veri tabanını öğrenirken bilinmesi gereken önemli konulardandır. Bildiğiniz gibi, her değişkenin bellekte bir konumu vardır ve her bellek konumu, veriyi bellekte bir adresi belirtecek şekilde konumlar. Bu konuma ampersand (&) operatörü kullanılarak erişilebilir.

Bu örnekte görüldüğü gibi bir a değişkeni tanımlayıp ona bir değer atadıktan sonra, adresini çağırdığımızda

Address of an utopian variable: c42000e1f8

şeklinde bir çıktı alırız programdan. Bu a değişkenin bellekte tanımlı olduğu spesifik adrestir. Yani bellek adresinin ne olduğunu ve ona nasıl erişileceğini anladın.

var var_name *var-type
var ip *int

Bir işaretçi tanımlayacağımız zaman bu şekilde yapıyoruz.

Bu örnekte ise işaretçilerin tanımlanama, değerleri ve onlara erişimi üzerine ufak bir pratik yapmış olacağız. Alacağımız çıktı ise:

Address of an utopian variable: c42000e1f8
Address stored in ip variable: c42000e1f8
Value of *ip variable: 20

İşaretçiler ve Diziler


Value of mods[0] = 10
Value of mods[1] = 100
Value of mods[2] = 200

Örnektende görüldüğü gibi önce bir dizi oluşturup ona elemanlar atadık sonra for döngüsünde bu elemanları teker teker işaretçiler ile çağırıp çıktı olarak sunduk. Yani işaretçiler bir integer veya string saklayabilir bellekte. Herhangi bir sınırlama yok.

Pointer'a Pointer Durumu


İşaretçiyi işaret eden işaretçi, işaretçi zinciri formudur. Normalde bir işaretçi bir değişken adresini içerir. Bir göstericiye bir işaretçi tanımladığımızda, ilk işaretçi aşağıda gösterildiği gibi gerçek değeri içeren bir konuma işaret eden ikinci işaretçinin adresini içerir. Biliyorum baya çorba oldu, her yer her yerde gibi ama örnek açıklayıcı olur umarım :)

Bu kodu çalıştırdığımızda alacağımız çıktı şöyle olacaktır:

Value of var = 3000
Value available at *ptr = 3000
Value available at **pptr = 3000

Bu gibi pointer'a pointer durumlarında dikkat edilmesi gereken durum pointer çağırırkken kullandığımız * operatörünü kaçıncı dereceden pointer çağırdığımıza göre tekrar etmektir.



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @monomyth I am @utopian-io. I have just upvoted you!

Achievements

  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 62102.06
ETH 2415.08
USDT 1.00
SBD 2.49