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

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