微修改了练习以尝试更深入地挖掘。package mainimport ( "fmt" "strings")func WordCount(s string) map[string]int { m := make(map[string]int) x := strings.Fields(s) for _, e := range x { m[e]++ } return m}func main() { phrase := "The quick brown fox" fmt.Println(WordCount(phrase), "length:", len(WordCount(phrase)))}对我来说没有意义的是 ++ 运算符在向地图添加新元素时在此上下文中的工作方式。++运算符的定义:自增运算符。它将整数值增加一。在这种情况下,++ 运算符增加映射长度的整数值,然后将 e 元素添加到新的映射长度?
1 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
aint
中 values的默认值为. 因此,当您遍历并调用时,扩展版本将是map
0
x
m[e]++
m[e] = m[e] + 1
换句话说:
m[e] = 0 + 1
当然,如果某个字段重复,则它已经在映射中(某些值 > 0)。
当您在循环后检查地图的长度时,它会给出字符串中唯一字段的数量。
- 1 回答
- 0 关注
- 86 浏览
添加回答
举报
0/150
提交
取消