Sobes.tech
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

Εάν απαιτείται ταξινομημένη έξοδος, πρέπει να συλλεχθούν τα κλειδιά σε μια λίστα, να ταξινομηθούν και να επαναληφθεί η διαδικασία με τα ταξινομημένα κλειδιά.