Sobes.tech
Junior — Middle

Ποιοι τύποι δεδομένων είναι κατάλληλοι για χρήση ως κλειδιά σε μια δομή Map;

sobes.tech AI

Απάντηση από AI

Στο Go, τα κλειδιά σε μια δομή map μπορούν να είναι μόνο τύποι που υποστηρίζουν την λειτουργία σύγκρισης ισότητας (== και !=). Αυτό οφείλεται στο ότι, για την αναζήτηση μιας τιμής με βάση το κλειδί, είναι απαραίτητο να συγκρίνονται τα κλειδιά.

Κατάλληλοι τύποι κλειδιών:

  • Απλοί τύποι: int, float64, string, bool κ.ά.
  • Δείκτες
  • Δομές, αν όλα τα πεδία τους είναι συγκρίσιμα
  • Πίνακες, αν τα στοιχεία τους είναι συγκρίσιμα

Δεν μπορούν να χρησιμοποιηθούν ως κλειδιά:

  • Λωρίδες (slice)
  • Χάρτες (map)
  • Συναρτήσεις

Παράδειγμα χρήσης:

m := make(map[string]int)
m["apple"] = 5
m["banana"] = 3

fmt.Println(m["apple"]) // 5

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