從 Go 中的 Map 中獲取鍵的切片

Jay Singh 2023年1月30日
  1. 使用 rangeappend() 從 Go 中的對映中獲取鍵切片
  2. 使用 MapKeys 函式從 Go 中的對映中獲取鍵切片
從 Go 中的 Map 中獲取鍵的切片

Golang Map 是無序鍵值對的集合。它被廣泛使用,因為它允許使用鍵快速查詢和檢索、更新或刪除值。

map 中的值不像鍵一樣唯一,可以是任何型別,例如 int、float64、rune、text、pointer、引用型別、map 型別等。

在本教程中,我們將從 Go 中的對映中檢索一個鍵切片。

使用 rangeappend() 從 Go 中的對映中獲取鍵切片

在此示例中,我們從字串鍵和字串值的對映開始。然後我們說明如何僅檢索單獨字串切片中的鍵。

我們通過使用 range 從 map 中獲取鍵,並使用 append() 將它們附加到一個空切片。

package main

import "fmt"

func main() {
    m := map[string]string{
        "animal": "Cat",
        "Car":    "GMC",
        "Metal":  "Gold",
    }

    keys := []string{}
    for key, _ := range m {
        keys = append(keys, key)
    }

    fmt.Println("KEYS SLICE -", keys)
}

輸出:

KEYS SLICE - [animal Car Metal]

使用 MapKeys 函式從 Go 中的對映中獲取鍵切片

要獲取型別為 []Value 的鍵陣列,我們使用 reflect 包中的 MapKeys 方法。

package main

import (
    "fmt"
    "reflect"
)

func main() {
    a := map[string]string{
        "animal": "Cat",
        "Car":    "GMC",
        "Metal":  "Gold",
    }

    keys := reflect.ValueOf(a).MapKeys()

    fmt.Println("Keys Slice -", keys)
}

輸出:

Keys Slice - [animal Car Metal]

相關文章 - Go Map