Sobes.tech
Junior — Middle

Μπορείτε να αλλάξετε το περιεχόμενο ενός πίνακα που έχει δοθεί ως slice κατά τη διάρκεια της εκτέλεσης του προγράμματος;

sobes.tech AI

Απάντηση από AI

Ναι, το περιεχόμενο ενός πίνακα που περνάει ως slice μπορεί να τροποποιηθεί κατά τη διάρκεια της εκτέλεσης του προγράμματος. Ένα slice στο Go είναι μια δομή που περιέχει έναν δείκτη σε έναν πίνακα, μήκος και χωρητικότητα. Οι αλλαγές στα στοιχεία του slice αντικατοπτρίζονται στον αρχικό πίνακα, καθώς το slice δείχνει στα δεδομένα του.

Παράδειγμα:

package main
import "fmt"

func modifySlice(s []int) {
    s[0] = 100
}

func main() {
    arr := [3]int{1, 2, 3}
    slice := arr[:]
    modifySlice(slice)
    fmt.Println(arr) // Θα εμφανίσει: [100 2 3]
}

Επομένως, η τροποποίηση του slice τροποποιεί και τον αρχικό πίνακα.