使用切片和数组作为映射键
在 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,它是两个整数的数组。 Map的值类型为bool。
通过转换为字符串来使用切片
如果需要使用切片作为Map的key,可以将切片进行转换到一个字符串并使用该字符串作为键。例如:
package main import ( "fmt" "strconv" ) func main() { m := make(map[string]bool) m[strconv.Itoa([]string{"a", "b"})] = false fmt.Printf("%v", m) }
这个映射有一个字符串类型的键,它是字符串切片的字符串表示形式。地图的值类型是bool。
以上是切片可以用作 Go 中的映射键吗?的详细内容。更多信息请关注PHP中文网其他相关文章!