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]
}
ამ გზით, ჰეშ მაგიდის მდგომარეობა პირდაპირ იცვლება მას ფუნქციას გადაცემის დროს.