Junior — Middle
Go'da dilimleri nasıl doğru şekilde oluşturup başlatılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, dilimler (slices), uzunluğu ve kapasitesi belirtilmiş bir diziye referans temsil eden dinamik veri yapılarıdır.
Dilimler birkaç farklı şekilde oluşturulabilir ve başlatılabilir:
- Başlatılmamış bir dilim (nil-dilim):
var s []int // nil-dilim, uzunluk ve kapasite 0
- Bir literal kullanarak dilim başlatma:
s := []int{1, 2, 3} // uzunluğu 3 olan dilim
- make fonksiyonu kullanarak dilim oluşturma:
s := make([]int, 5) // uzunluğu 5 olan, sıfırlarla doldurulmuş dilim
s2 := make([]int, 3, 10) // uzunluğu 3, kapasitesi 10
make fonksiyonu arka planda bir dizi ayırır ve ona işaret eden bir dilim döndürür.
- Bir diziden dilim oluşturma:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // indeksleri 1,2,3 olan öğelerin dilimi
Dilimlerin dizilere referans olduğunu ve bu nedenle dilim üzerindeki değişikliklerin orijinal diziyi de değiştirdiğini unutmamak önemlidir.
Kullanım örneği:
package main
import "fmt"
func main() {
s := make([]int, 3, 5)
fmt.Println(s) // [0 0 0]
fmt.Println(len(s)) // 3
fmt.Println(cap(s)) // 5
s = append(s, 4, 5)
fmt.Println(s) // [0 0 0 4 5]
fmt.Println(len(s)) // 5
fmt.Println(cap(s)) // 5
}
Bu yaklaşım, Go'da dinamik dizilerle verimli bir şekilde çalışmayı sağlar.