Turkish Golang Tutorial Guide #5 : Arrays

in #utopian-io6 years ago (edited)

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 Arrays. So, thank you for reading!

Arrays - Diziler


Go programlama dili, aynı türdeki öğelerin sabit büyüklükte ardışık bir koleksiyonunu depolayan dizi adı verilen bir veri yapısı sağlar. Aslında dizi yapısı Go'ya has değil, neredeyse her dilde var olan bir yapı bu. Dizileri bir veri kümesini depolamak için kullanabiliriz mesela ve onlara daha organize ve hızlı bir şekilde erişmek için.

Aynı zamanda diziler ile 1'den N'e kadar değişken tanımlayıp onlara atama yapacağımıza, N elemanlı bir dizi oluşturup ihtiyaç durumunda dizinin i. ögesini çağırarak hem veri boyutu olarak hem de işlem hızı olarak kar sağlayabiliriz. sayı[1], sayı[2]... sayı[n] ile gösterebiliriz bu elemanları. Ayrıca diziler bitişik bellek konumlarından oluşur. Yani en düşük adres, ilk öğeye ve son öğeye en yüksek adrese karşılık gelir.


source

Peki Go dilinde bir dizi tanımlamak istesek bunu nasıl yapacağız? Go'da dizi tanımlamanın temel şablonu şu şekilde:

var variable_name [SIZE] variable_type
var utopian [10] float32

Burada gördüğünüz gibi önce dizinin spesifik adını (tıpkı değişken adı gibi), sonra boyutunu ve en son dönüş tipini belirterek tanımlama işlemini gerçekleştiriyoruz. Yani utopian adlı dizi 10 tane float32 tipinde eleman saklayan bir dizi olarak tanımlanmış oluyor örneğimizde. Tabi bu elemanların ne olduğunu da belirtip, atamalar yapabiliriz.

var utopian = [5]float32{17.0, 4.4, 3.4, 71.0, 94.0}
utopian[4] =94.0

Bu örnekte de gördüğünüz gibi dizinin belirli bir indeksini girip o indekste tutulan elemanın değerini isteyebiliriz. Burada dikkat edilmesi gereken nokta dizilerin indeksinin 0'dan başlaması. Yani ilk elemanın indeks numarası aslında 1 değil 0'dır.

Bu kod ile günlük kazandığımız rewardları yazdırdığımızı varsayalım. Alacağımız çıktı şu şekilde olacaktır:


Author Reward[0] = 100 SBD
Author Reward[1] = 101 SBD
Author Reward[2] = 102 SBD
Author Reward[3] = 103 SBD
Author Reward[4] = 104 SBD
Author Reward[5] = 105 SBD
Author Reward[6] = 106 SBD
Author Reward[7] = 107 SBD
Author Reward[8] = 108 SBD
Author Reward[9] = 109 SBD

Tabi gönül ister ki gerçekten günde +100 net SBD kazancımız olsun :)

Diziler aynı zamanda birden çok boyutlu olabilir. Boyut sayısı 2 ve üzeri olunca aslında matris tanımlamış oluruz temelde. Çok boyutlu dizilerde tanımlama şablonumuz yine aynı.

var utopian [5][10][4]int

İki boyutlu dizideki elemanlara erişim ise yine tek boyutludaki ile aynı mantığa sahiptir.
int utopian = a[2][3]


Source

Tabloda gördüğümüz gibi iki boyutlu dizilerin oluşturuğu matrissel düzlemin mantığı bu şekilde. Dizinin ilk elemanı satır numarasını ikinci elemanı sütun numarasını gösterir.


Mono Curation[0][0] = 0
Mono Curation[0][1] = 0
Mono Curation[1][0] = 1
Mono Curation[1][1] = 2
Mono Curation[2][0] = 2
Mono Curation[2][1] = 4
Mono Curation[3][0] = 3
Mono Curation[3][1] = 6
Mono Curation[4][0] = 4
Mono Curation[4][1] = 8

Örnekte de görüldüğü gibi, herhangi bir sayıda boyuta sahip dizilere sahip olabilirsiniz, ancak muhtemelen oluşturduğunuz dizilerin çoğunun bir veya iki boyutta olacak. İki ve üzeri boyutta dizilerle işlem yapmanız için gerçekten üst düzey bir matematiksel işlem gerketiren bir projede çalışıyor olmanız gerekiyor. Şimdi, bir diziyi argüman olarak alacak bir örnek yapalım. Diziden geçirilen sayıların ortalamasını bulan bir kod yazacak olursak:

Bu örnekte ise fonksiyonumuza parametre olarak bir dizi gönderdik.



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!

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.28
TRX 0.13
JST 0.032
BTC 61372.42
ETH 2928.56
USDT 1.00
SBD 3.66