首頁  >  文章  >  後端開發  >  切片可以用作 Go 中的映射鍵嗎?

切片可以用作 Go 中的映射鍵嗎?

DDD
DDD原創
2024-11-12 04:22:01429瀏覽

Can Slices Be Used as Map Keys in Go?

使用切片和陣列作為映射鍵

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn