golang迭代map几种方式

在golang使用range操作符来迭代map,通常有以下几种使用的场景:获取key和value,只获取value,只获取key,我们来举例说明下。

首选构造一个map

sample := map[string]string{
        "a": "x",
        "b": "y",
}

迭代key和value

for k, v := range sample {
   fmt.Printf("key :%s value: %s\n", k, v)
}

输出:

key :a value: x
key :b value: y

只迭代key

for k := range sample {
   fmt.Printf("key :%s\n", k)
}

输出:

key :a
key :b

只迭代value

for _, v := range sample {
   fmt.Printf("value :%s\n", v)
}

输出:

value :x
value :y

获取所有key

keys := getAllKeys(sample)
fmt.Println(keys)

func getAllKeys(sample map[string]string) []string {
    var keys []string
    for k := range sample {
        keys = append(keys, k)
    }
    return keys
}

输出:

[a b]
Golang struct使用内嵌实现继承
Tags: