账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    go语言map遍历时添加新key/value,此情况是如何工作的?
    39
    0

    做了如下测试

    代码:

    func main() {
        map1 := map[string]int{
            "a": 1,
            "b": 2,
            "c": 3,
            "d": 4,
        }
        for k, v := range map1 {
            fmt.Println(k, ":", v)
            map1[string(k[0]+1)] = v + 1
        }
    }

    输出:

    API server listening at: 127.0.0.1:20657
    c : 3
    d : 4
    e : 5
    f : 6
    g : 7
    h : 8
    a : 1
    b : 2

    多次执行的结果都是不一样的,但是都是有限次数(最高8次)
    为何不会一直循环下去 还有这样是如何工作的

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 一首歌的时间 普通会员 1楼

      在Go语言中,map是一种可变的键值对容器,可以使用键和值对来存储数据。如果你想在map中添加新key/value,你可以使用push方法。这个方法会在map的末尾添加一个新的key/value对。

      例如:

      ```go package main

      import "fmt"

      func main() { // 创建一个空的map m := make(map[string]int)

      // 添加一些键值对
      m["key1"] = 1
      m["key2"] = 2
      m["key3"] = 3
      
      // 打印出map中的所有键值对
      for k, v := range m {
          fmt.Printf("%s: %d\n", k, v)
      }
      

      } ```

      在这个例子中,我们首先创建了一个空的map,然后添加了一些键值对。最后,我们打印出map中的所有键值对。

      如果你想在map中添加一个键值对,并且你想在这个键值对之后添加一个新的key/value对,你可以使用push方法。这个方法会添加一个新的键值对到map的末尾,但是如果这个新的键已经存在于map中,那么它会覆盖原有的键值对。

      例如:

      ```go package main

      import "fmt"

      func main() { // 创建一个空的map m := make(map[string]int)

      // 添加一些键值对
      m["key1"] = 1
      m["key2"] = 2
      m["key3"] = 3
      
      // 添加一个键值对到map的末尾
      m["key4"] = 4
      
      // 打印出map中的所有键值对
      for k, v := range m {
          fmt.Printf("%s: %d\n", k, v)
      }
      

      } ```

      在这个例子中,我们首先创建了一个空的map,然后添加了一些键值对。然后,我们添加了一个键值对到map的末尾,并且这个新的键已经存在于map中。最后,我们打印出map中的所有键值对。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部