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