面试题答案
一键面试package main
import (
"fmt"
)
func main() {
m := map[string]int{
"a": 10,
"b": 20,
"c": 30,
}
sum := 0
maxKey := ""
maxValue := 0
for key, value := range m {
sum += value
if value > maxValue {
maxValue = value
maxKey = key
}
}
fmt.Printf("总和: %d\n", sum)
fmt.Printf("值最大的键: %s\n", maxKey)
}
for - range遍历map时的顺序特点
在Go语言中,使用for - range
遍历map时,遍历顺序是随机的。每次运行程序,遍历的顺序可能都不一样。这是因为map的实现是基于哈希表,哈希表的设计目的主要是为了快速的查找和插入操作,而不是为了有序遍历。如果需要按特定顺序遍历map,通常需要先将键(或值)提取出来,进行排序后再按序遍历。