go 中地图键循环的 ++ 运算符

微修改了练习以尝试更深入地挖掘。

package main


import (

    "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 元素添加到新的映射长度?


吃鸡游戏
浏览 70回答 1
1回答

跃然一笑

aint中 values的默认值为. 因此,当您遍历并调用时,扩展版本将是map0xm[e]++m[e] = m[e] + 1换句话说:m[e] = 0 + 1当然,如果某个字段重复,则它已经在映射中(某些值 > 0)。当您在循环后检查地图的长度时,它会给出字符串中唯一字段的数量。
打开App,查看更多内容
随时随地看视频慕课网APP