」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 切片可以用作 Go 中的映射鍵嗎?

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

發佈於2024-11-11
瀏覽:486

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。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3