Sobes.tech
Junior — Middle

რა ტიპის მონაცემები მიიღება როგორც გასაღებები რუკის სტრუქტურაში?

sobes.tech AI

პასუხი AI-სგან

Go-ში, რუკის გასაღებები შეიძლება იყოს მხოლოდ იმ მონაცემთა ტიპები, რომლებიც მხარს უჭერენ შედარების ოპერაციას (შედარებადი). ეს ნიშნავს, რომ გასაღებები შეიძლება იყოს:

  • ბულიან მნიშვნელობები (bool)
  • რიცხვები (int, float, complex და ა.შ.)
  • სტრიქონები (string)
  • მაჩვენებლები
  • ინტერფეისები, თუ დინამიური ტიპი მხარს უჭერს შედარებას
  • სტრუქტურები, თუ ყველა მათი ველი შედარებადი არის

სლაისები, რუკები, ფუნქციები და სხვა შედარებადი არა ტიპები არ შეიძლება გამოყენებულ იქნას გასაღებად, რადგან ისინი არ მხარს უჭერენ == ოპერატორს.

მაგალითი:

m := make(map[string]int)
m["key"] = 42

// შედარებადი ველებით სტრუქტურა
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "ნიშანი"