Middle
Τι θα εμφανίσει το πρόγραμμα με επανάληψη σε έναν χάρτη;
sobes.tech AI
Απάντηση από AI
Στο Go, η σειρά επανάληψης σε ένα map δεν ορίζεται και μπορεί να αλλάξει σε κάθε εκτέλεση του προγράμματος. Αυτό συμβαίνει επειδή τα maps στο Go υλοποιούνται χρησιμοποιώντας πίνακες κατακερματισμού, και για λόγους ασφαλείας και απρόβλεπτης συμπεριφοράς, η σειρά δια traversing τυχαία τυποποιείται σκόπιμα.
Παράδειγμα:
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k, v := range m {
fmt.Println(k, v)
}
}
Σε κάθε εκτέλεση, η έξοδος μπορεί να διαφέρει, για παράδειγμα:
b 2
a 1
c 3
ή
c 3
b 2
a 1
Εάν απαιτείται ταξινομημένη έξοδος, πρέπει να συλλεχθούν τα κλειδιά σε μια λίστα, να ταξινομηθούν και να επαναληφθεί η διαδικασία με τα ταξινομημένα κλειδιά.