Sobes.tech
Junior — Middle

როგორ იცვლება ჰეშ-ცხრილის მდგომარეობა, როდესაც იგი ფუნქციას პარამეტრად გადაეცემა?

sobes.tech AI

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

Go ენაში ჰეშ მაგიდები განთავსებულია map ტიპის საშუალებით, რომელიც ფუნქციებს გადაეცემა მითითებით. ეს ნიშნავს, რომ როდესაც map-ს ფუნქციას გადავცემთ, არა თავად მაგიდა, არამედ მის შიდა მონაცემთა სტრუქტურის მითითება იწერება.

შედეგად, ნებისმიერი ცვლილება, რომელიც განხორციელდება map-ზე ფუნქციის შიგნით (დამატება, წაშლა ან ელემენტების შეცვლა), იქნება ჩანს გარეთაც, რადგან იგივე ობიექტი იცვლება.

მაგალითი:

func addEntry(m map[string]int, key string, value int) {
    m[key] = value
}

func main() {
    myMap := make(map[string]int)
    addEntry(myMap, "key1", 100)
    fmt.Println(myMap) // გამოიტანს: map[key1:100]
}

ამ გზით, ჰეშ მაგიდის მდგომარეობა პირდაპირ იცვლება მას ფუნქციას გადაცემის დროს.