Junior — Middle
Έχουν οι προβολές στο Go μεθόδους μήκους και χωρητικότητας παρόμοιες με αυτές των slices;
sobes.tech AI
Απάντηση από AI
Στο Go, τα maps (χάρτες) δεν έχουν μεθόδους μήκους και χωρητικότητας όπως τα slices. Αντί για μεθόδους για την απόκτηση μήκους, χρησιμοποιείται η ενσωματωμένη συνάρτηση len(), που επιστρέφει τον αριθμό των στοιχείων στον χάρτη.
Για slices, μπορείτε να χρησιμοποιήσετε len() για το τρέχον μήκος και cap() για τη χωρητικότητα (μέγιστο μέγεθος χωρίς νέα κατανομή μνήμης). Στους χάρτες, το cap() δεν υπάρχει, καθώς μεγαλώνουν δυναμικά καθώς προστίθενται στοιχεία.
Παράδειγμα:
m := make(map[string]int)
m["a"] = 1
fmt.Println(len(m)) // εμφανίζει 1
s := make([]int, 0, 10)
fmt.Println(len(s)) // 0
fmt.Println(cap(s)) // 10