Sobes.tech
Junior — Middle

Оё метавонед хосиятҳои асосӣ ва хусусиятҳои истифодаи калидҳо дар структураҳои додаҳои Map-ро тавсиф кунед?

sobes.tech AI

Ҷавоб аз AI

Дар забони Go (Golang), map — ин навъи додаҳои дарунсохт аст, ки як массиви ҳамсоя ё луғатро ифода мекунад, ки ҷуфтҳои калид-арзишро нигоҳ медорад.

Хусусиятҳои асосии калидҳо дар map:

  • Намуди калид бояд муқоисашаванда бошад: калидҳо бояд операсияи муқоиса ==-ро дастгирӣ кунанд. Ин маъно дорад, ки калидҳо метавонанд намудҳои мисли сатрҳо, рақамҳо, ишорагарон, сохторҳо бошанд, агар ҳамаи майдонҳои онҳо муқоисашаванда бошанд.
  • Слайсҳо, харитҳо ё функсияҳоро ҳамчун калид истифода бурда намешавад, зеро онҳо муқоисашаванда нестанд.
  • Калидҳо ягонаанд: дар як харита наметавон ду калиди якхела бошанд.

Масалан, сохтани ва истифодаи map бо калидҳои навъи string:

package main
import "fmt"

func main() {
    m := make(map[string]int)
    m["apple"] = 5
    m["banana"] = 3

    fmt.Println(m["apple"]) // 5-ро мебарорад

    // Санҷиши мавҷудияти калид
    val, ok := m["pear"]
    if !ok {
        fmt.Println("Калиди 'pear' ёфт нашуд")
    } else {
        fmt.Println(val)
    }
}

Аз ин рӯ, ҳангоми истифодаи калидҳо дар map, муҳим аст, ки намудҳои дастгиришавандаро интихоб кунед, то хатогиҳои компиляцияро пешгирӣ кунед.