Sobes.tech
Junior — Middle

Bir programlama dilinde fonksiyona geçirilen dilim boyutunu nasıl artırabilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, dilim (slice), bir diziye işaretçi, uzunluk ve kapasite içeren bir yapıdır. Bir fonksiyona geçirilen dilimi büyütmek istiyorsanız, aşağıdaki yöntemleri kullanabilirsiniz:

  • Dilimi değer olarak geçirin, ancak fonksiyon içinde append fonksiyonunu kullanarak yeni ve daha büyük bir dilim oluşturun.
  • Eğer dilimi kendisi değiştirmek (örneğin, uzunluğunu artırmak) ve bu değişikliklerin dışarıdan görünmesini istiyorsanız, dilime işaretçi (*[]T) geçirebilirsiniz; böylece fonksiyon içinde dilimi yeniden atayabilirsiniz.

İşte fonksiyon içinde dilimi genişleten ve yeni bir dilim döndüren bir örnek:

func extendSlice(s []int, n int) []int {
    // n sıfır öğesi ekle
    s = append(s, make([]int, n)...) 
    return s
}

func main() {
    s := []int{1, 2, 3}
    s = extendSlice(s, 2)
    fmt.Println(s) // [1 2 3 0 0]
}

Eğer fonksiyon dilimi değiştirmeli ve geri döndürmemeli ise, işaretçi kullanabilirsiniz:

func extendSlicePtr(s *[]int, n int) {
    *s = append(*s, make([]int, n)...) 
}

func main() {
    s := []int{1, 2, 3}
    extendSlicePtr(&s, 2)
    fmt.Println(s) // [1 2 3 0 0]
}

Bu şekilde, fonksiyon içinde dilimin boyutunu artırmak için ya yeni bir dilim döndürmeli ya da dilime işaretçi geçirmelisiniz.