Junior — Middle
Bir programlama dilinde dilim (slice) nasıl fonksiyona aktarılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, dilim (slice) bir fonksiyona değer olarak aktarılır, ancak dilim bir diziye işaret eden bir gösterici, uzunluk ve kapasite içerir. Bu, bir dilimi fonksiyona geçirirken, dilimin yapısının kopyalandığı, ancak gösterdiği dizinin verilerinin kopyalanmadığı anlamına gelir.
Bu nedenle, fonksiyon içindeki dilim öğelerindeki değişiklikler orijinal diziye yansır, ancak dilimin kendisinde yapılan değişiklikler (örneğin, yeni bir dilim atama) dış dilimi etkilemez.
Örnek:
package main
import "fmt"
func modifySlice(s []int) {
s[0] = 100 // orijinal dizinin öğesini değiştirir
s = append(s, 200) // yerel dilimi değiştirir, dış dilim etkilenmez
}
func main() {
s := []int{1, 2, 3}
modifySlice(s)
fmt.Println(s) // Çıktı: [100 2 3]
}
Bu şekilde, dilim değeriyle geçirilir, ancak iç gösterici sayesinde, öğelerdeki değişiklikler fonksiyon dışında da görünür.