Junior — Middle
Πώς να προσδιορίσετε ποια τιμή μπορεί να χρησιμοποιηθεί ως κλειδί σε μια δομή δεδομένων Map;
sobes.tech AI
Απάντηση από AI
Στα Go, το κλειδί για έναν χάρτη μπορεί να είναι οποιοδήποτε τύπο που υποστηρίζει σύγκριση με τον τελεστή ==. Αυτό σημαίνει ότι το κλειδί πρέπει να είναι συγκρίσιμο.
Τι μπορεί να χρησιμοποιηθεί ως κλειδί:
- Πρωταρχικοί τύποι: συμβολοσειρές, αριθμοί, boolean τιμές.
- Δείκτες.
- Δομές, αν όλα τα πεδία τους είναι συγκρίσιμα.
Τι δεν μπορεί να χρησιμοποιηθεί:
- Λωρίδες (slice), χάρτες (map), συναρτήσεις, καθώς δεν είναι συγκρίσιμα.
Παράδειγμα:
m := make(map[string]int) // συμβολοσειρά — έγκυρο κλειδί
m["key"] = 42
// Δομή με συγκρίσιμα πεδία
type Point struct {
X, Y int
}
var points = make(map[Point]string)
points[Point{1, 2}] = "A"
Αν προσπαθήσετε να χρησιμοποιήσετε έναν τύπο που δεν είναι συγκρίσιμος ως κλειδί, ο μεταγλωττιστής θα εμφανίσει σφάλμα.