Golang Slice(kesit) Kullanımı

Golang Slice(kesit) Kullanımı

Slice Kullanımı

Örnek üzerinden gidelim. Misal okul müdürüsünüz ve öğrenci numaralarını tuttuğunuz bir array(dizin)'niz var ve bu dizin 500'lük tanımlanmış. 501. öğrenci numarasını kaydetmek istediğinizde hata alıcaksınız.

Slice'lar boyutu büyüyüp, küçülebilen dinamik dizinlerdir.

Slicelar aynı dizin tanımlar gibi tanımlanırlar.

var og_nums []int

Yukarıda öğrenci numaralarını tutacağımız boş bir slice tanımladık.

Klasik, indeks 0'dan başlar.

Örn:

package main

import "fmt"

func main() {
   og_nums := []int{1123, 1234, 1236, 1241}
   for _, og_nu := range og_nums {
       fmt.Printf("Öğrenci numarası: %d\n",og_nu)
   }
}

Bir slice'ın for each döngüsüne girebilmesi için range fonksiyonunu kullanabilirsiniz.

Hiç unutmam bilgisayar mühendisliğine yerleştiğimi ekranda gördüğümde hemen en yakın bir kitapçıya gidip c++ kitabı almıştım. (Bildiğimden değil sağdan soldan duydugum kadar ) Dizinler, charlar falan derken, kendi kendime string'inde aslında bir char arrayi olduğunu düşünmüştüm.
İlk programlama dersi ben Mr. Robot edalarıyla bunu anlatıyordum 🙂

Kıssadan hisse şu ki bir dizin üzerinden de bir slice bir kesit almak mümkün.

var notlar [100]int
zayif := notlar[:45]
eh    := notlar[46:70]
...

Gibi ana dizinden kesitler ( slicelar ) aldık.

Slice Fonksiyonları

Make
plaka := make([]int, 81)   // 81 elemanlı slice
dersler := make([]string, 2, 10) // 2-10 arası elemanlı slice
Append

Linux kullananlar bilir echo "test" >> test.txt nasıl dosyanın sonuna ekliyorsa "test" kelimesini append kullanıldığında slice'ın sonuna o değer eklenir.

doviz := []string{"euro","dolar","yen"}
doviz = append(doviz,"dinar")
Len ve Cap

Len, slice eleman sayısını, cap ise kapestesini verir.

Copy

Bir kesiti başka bir kesite taşımak için for vs kullanmayalım diye yapmışlar, sağolsunlar. Limitli kopyalama da münkün. ( sadece ilk 5 eleman vs )

Yorum Yapın