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
Αν προσπαθήσετε να χρησιμοποιήσετε μια λωρίδα ως κλειδί, ο μεταγλωττιστής θα εμφανίσει σφάλμα.