Sobes.tech
Junior — Middle

Структураларды ассоциативдүү массивде же картада ачкыч катары колдонуу мүмкүнбү?

sobes.tech AI

AIден жооп

Go'до, картанын ачкычтары гана салыштыруу операциясын колдой турган түрлөр болушу мүмкүн (== оператору). Түзүмдөр бардык талаалары салыштырмалуу болсо, аларды ачкыч катары колдонсо болот. Мисалы, эгер түзүм гана негизги түрлөрдү (int, string жана башка) камтыса, аны ачкыч катары колдонсо болот. Бирок, эгер түзүм сүрөттөр, карталар же функцияларды камтыса, аны ачкыч катары колдонууга болбойт.

Мисал:

package main

import "fmt"

type Point struct {
    X, Y int
}

func main() {
    m := make(map[Point]string)
    p := Point{X: 1, Y: 2}
    m[p] = "нүктө"
    fmt.Println(m[p]) // чыгуу: нүктө
}

Эгер түзүм салыштырмалуу эмес талааларды камтыса, компилятор катаны чыгарат.