Sobes.tech
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:

  1. Başlatılmamış bir dilim (nil-dilim):
var s []int // nil-dilim, uzunluk ve kapasite 0
  1. Bir literal kullanarak dilim başlatma:
s := []int{1, 2, 3} // uzunluğu 3 olan dilim
  1. 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.

  1. 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.