GUI (Grafiksel Kullanıcı Arayüzü)
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.
1
package main
2
import "fmt"
3
func main() {
4
 a := [6]int{2, 3, 5, 6, 7, 9}
5
 fmt.Println(a) //Çıktımız: [2 3 5 6 7 9]
6
var b []int = a[2:4] //Dilimleme işlemi
7
 fmt.Println(b) //Çıktımız: [5 6]
8
}
Copied!
İ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)
1
package main
2
import "fmt"
3
func main() {
4
 a := [6]int{2, 3, 5, 6, 7, 9}
5
var b []int = a[:4] //Boş bırakılan indeks 0 varsayıldı
6
 fmt.Println(b) //Çıktımız: [2 3 5 6]
7
var c []int = a[3:] //Boş bırakıldığı için 3. index ve sonrası alındı
8
 fmt.Println(c) //Çıktımız: [6 7 9]
9
}
Copied!
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.
1
package main
2
import "fmt"
3
func main() {
4
 a := [6]int{2, 3, 5, 6, 7, 9}
5
 b := a[2:4]
6
 fmt.Println("a uzunluk", len(a))
7
 fmt.Println("a kapasite", cap(a))
8
 fmt.Println("a'nın içeriği", a)
9
 fmt.Println("b uzunluk", len(b))
10
 fmt.Println("b kapasite", cap(b))
11
 fmt.Println("b'nin içeriği", b)
12
}
Copied!
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 6
a kapasite 6
a'nın içeriği [2 3 5 6 7 9]
b uzunluk 2
b kapasite 4
b'nin içeriği [5 6]
Boş Dilimler (Nil Slices) Boş bir dilimin varsayılan (sıfır) değeri nil’dir. Örnek olarak;
1
package main
2
import "fmt"
3
func main() {
4
var a []int
5
if a == nil {
6
  fmt.Println("Boş")
7
}
8
}
Copied!
Çı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.
1
a := make([]int, 5)
Copied!
Burada make fonksiyonu ile uzunluğu 5 olan a adında bir dizi oluşturduk.
1
a := make([]int, 0, 5)
Copied!
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.
1
package main
2
import "fmt"
3
func main() {
4
var a []string
5
 fmt.Println(a) //[ ]
6
 a = append(a, "Ali")
7
 a = append(a, "Veli")
8
 fmt.Println(a) //[Ali Veli]
9
}
Copied!
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.
1
fmt.Println(len(a), cap(a))
Copied!
a dizisinin uzunluk ve kapasitesine baktığımızda aşağıdaki çıktıyı alırız.
2 2
Last modified 8mo ago
Copy link