一个案例彻底弄懂Go语言中的map (Golang经典编程案例)


案例要求

  1. 判断某个用户名是否存在,若存在,则把密码改为”888888“,若不存在,就增加这个用户信息(信息包括昵称nickname 和 密码pwd);
  2. key表示用户名,是唯一的,不可以重复;
  3. 使用map[string]map[string]string 的map类型;
  4. 编写一个函数modifyUser(users map[string]map[string]string,name string) 完成上述功能。

代码如下

package main

import "fmt"

func modifyUser(users map[string]map[string]string,name string){
    //判断users中是否有name
    if users[name] != nil {//有这个用户
        users[name]["pwd"] = "888888"
    } else {
        //没有这个用户
        users[name] = make(map[string]string, 2)
        users[name]["pwd"] = "888888"
        users[name]["nickname"] = "小" + name
    }
}

func main() {
    users := make(map[string]map[string]string,10)
    users["smith"] = make(map[string]string,2)
    users["smith"]["pwd"] = "999999"
    users["smith"]["nickname"] = "小花猫"

    //modifyUser(users, "tom")
    modifyUser(users,"zhangsan")
    modifyUser(users, "mary")
    modifyUser(users, "smith")

    fmt.Println(users)
}

执行结果如下图所示:


原文链接:https://blog.csdn.net/cui_yonghua/article/details/93892724?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163479651116780366526677%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163479651116780366526677&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-24-93892724.pc_v2_rank_blog_default&utm_term=go&spm=1018.2226.3001.4450