Comment on page
Dilimler (Slices)
Dilimler bir dizideki değerlerin istediğimiz bölümünü kullanmamıza yarar. Yani diziyi bir pasta olarak düşünürsek kestiğimiz dilimi yiyoruz sadece. Örneğimize geçelim.
package main
import "fmt"
func main() {
a := [6]int{2, 3, 5, 6, 7, 9}
fmt.Println(a) //Çıktımız: [2 3 5 6 7 9]
var b []int = a[2:4] //Dilimleme işlemi
fmt.Println(b) //Çıktımız: [5 6]
}
İnceleme kısmına geçelim.
a
isminde 6 tane int
tipinde değer alan bir dizi oluşturduk. Çıktımızın içeriğini görmek için ekrana bastırdık. Dilimleme işlemi olarak yorum yaptığım satırda ise a
dizisinde 2
ve 4
indeksi arasındaki değerleri dizi olarak b’ye kaydettik. b dizisinin içeriğini ekrana bastırdığımızda ise dilimlenmiş alanımızı gördük. Dilimleme işleminde [ ]
içerisine dilimlemenin başlayacağı ve biteceği indeksi yazarız.Dilim Varsayılanları (Sıfır Değerleri)
package main
import "fmt"
func main() {
a := [6]int{2, 3, 5, 6, 7, 9}
var b []int = a[:4] //Boş bırakılan indeks 0 varsayıldı
fmt.Println(b) //Çıktımız: [2 3 5 6]
var c []int = a[3:] //Boş bırakıldığı için 3. index ve sonrası alındı
fmt.Println(c) //Çıktımız: [6 7 9]
}
Dilim Uzunluğu ve Kapasitesi
Bir dilimin uzunluk ve kapasite değeri vardır. Dilimin uzunluğunu len() fonksiyonu ile, kapasitesini ise cap() fonksiyonu ile hesaplarız. Örneğimize geçelim.
package main
import "fmt"
func main() {
a := [6]int{2, 3, 5, 6, 7, 9}
b := a[2:4]
fmt.Println("a uzunluk", len(a))
fmt.Println("a kapasite", cap(a))
fmt.Println("a'nın içeriği", a)
fmt.Println("b uzunluk", len(b))
fmt.Println("b kapasite", cap(b))
fmt.Println("b'nin içeriği", b)
}
b dizisi ile a dizisini dilimlediğimiz için b dizisinin kapasitesi ve uzunluğu değişti. Uzunluk dizinin içindeki değerlerin sayısıdır. Kapasite ise dizinin maksimum alabileceği değer sayısıdır. Çıktımıza bakacak olursak;
a uzunluk 6a kapasite 6a'nın içeriği [2 3 5 6 7 9]b uzunluk 2b kapasite 4b'nin içeriği [5 6]
Boş Dilimler (Nil Slices)
Boş bir dilimin varsayılan (sıfır) değeri nil’dir. Örnek olarak;
package main
import "fmt"
func main() {
var a []int
if a == nil {
fmt.Println("Boş")
}
}
Çıktısı tahmin edeceğiniz üzere Boş yazısı olaraktır.
Make ile Dilim Oluşturma
Dilimler make fonksiyonu ile de oluşturulabilir. Dinamik büyüklükte diziler oluşturabiliriz.
a := make([]int, 5)
Burada make fonksiyonu ile uzunluğu 5 olan a adında bir dizi oluşturduk.
a := make([]int, 0, 5)
Burada ise make fonksiyonu ile uzunluğu 0, kapasitesi ise 5 olan a adında bir dizi oluşturduk.
Dilime Ekleme Yapma
Bir dilime ekleme yapmak için append fonksiyonu kullanılır. Hemen bir örnek ile kullanılışını görelim.
package main
import "fmt"
func main() {
var a []string
fmt.Println(a) //[ ]
a = append(a, "Ali")
a = append(a, "Veli")
fmt.Println(a) //[Ali Veli]
}
a isminde string tipinde boş bir dizi oluşturduk. Hemen ardından boş olduğunu teyit etmek için a dizisini ekrana bastırdık. Daha sonra a dizisine append fonksiyonu ile “Ali” değerini ekledik. Yine aynı yöntem ile “Veli” değerini de ekledik. Son olarak a dizisinin çıktısının ekrana bastırdığımızda değerlerin eklenmiş olduğunu gördük.
fmt.Println(len(a), cap(a))
a dizisinin uzunluk ve kapasitesine baktığımızda aşağıdaki çıktıyı alırız.
2 2
Last modified 2yr ago