Sobes.tech
Junior — Middle

Πώς αλλάζει η κατάσταση του πίνακα κατακερματισμού κατά την μεταβίβασή του σε μια συνάρτηση ως παράμετρος;

sobes.tech AI

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

Στο Go, οι πίνακες κατακερματισμού υλοποιούνται μέσω του τύπου map, ο οποίος περνάει στις συναρτήσεις με αναφορά. Αυτό σημαίνει ότι όταν περνάμε ένα map σε μια συνάρτηση, δεν αντιγράφεται ο πίνακας, αλλά ένας δείκτης στη εσωτερική δομή δεδομένων του.

Ως αποτέλεσμα, οποιεσδήποτε αλλαγές γίνονται στο map μέσα στη συνάρτηση (προσθήκη, διαγραφή ή τροποποίηση στοιχείων) θα είναι ορατές και έξω από τη συνάρτηση, καθώς τροποποιείται το ίδιο αντικείμενο.

Παράδειγμα:

func addEntry(m map[string]int, key string, value int) {
    m[key] = value
}

func main() {
    myMap := make(map[string]int)
    addEntry(myMap, "key1", 100)
    fmt.Println(myMap) // Θα εμφανίσει: map[key1:100]
}

Έτσι, η κατάσταση του πίνακα κατακερματισμού αλλάζει άμεσα κατά την μεταβίβαση σε μια συνάρτηση.