Использование срезов и массивов в качестве ключей карты
В Go ключи карты должны реализовывать операторы == и != для сравнения их равенства. Срезы не реализуют эти операторы, поэтому срезы нельзя использовать непосредственно в качестве ключей карты. Однако массивы можно использовать в качестве ключей карты, поскольку они реализуют необходимые операторы.
Использование массивов в качестве ключей карты
Чтобы использовать массив в качестве ключа карты, вы можете объявите карту, используя тип массива в качестве типа ключа. Например:
package main import "fmt" func main() { m := make(map[[2]int]bool) m[[2]int{1, 2}] = false fmt.Printf("%v", m) }
Эта карта имеет тип ключа [2]int, который представляет собой массив из двух целых чисел. Тип значения карты — bool.
Использование срезов путем преобразования в строки
Если вам нужно использовать срез в качестве ключа карты, вы можете преобразовать срез в строку и используйте строку в качестве ключа. Например:
package main import ( "fmt" "strconv" ) func main() { m := make(map[string]bool) m[strconv.Itoa([]string{"a", "b"})] = false fmt.Printf("%v", m) }
Эта карта имеет ключевой тип строки, который представляет собой строковое представление фрагмента строк. Тип значения карты — bool.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3