Sobes.tech
Junior — Middle

Могат ли масивите да се използват като ключове в колекцията Map?

sobes.tech AI

Отговор от AI

В Go ключовете в колекцията map могат да бъдат само типове, които поддържат операцията за сравнение ==. Масивите в Go са сравними по елемент по елемент, затова масивите с фиксирана дължина могат да се използват като ключове.

Пример:

package main
import "fmt"

func main() {
    m := make(map[[3]int]string)
    key := [3]int{1, 2, 3}
    m[key] = "пример"
    fmt.Println(m[key]) // Ще изведе: пример
}

Обаче, срезовете ([]int) не могат да се използват като ключове, тъй като не са сравними. Ако имате нужда от колекция с ключове, базирани на срезове, трябва да ги преобразувате в низ или друг сравним тип.