QQ登录

只需一步,快速开始

扫一扫,访问微社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 130|回复: 0

[技术分享] Go之旅-映射

[复制链接]

8

主题

11

帖子

1096

积分

中级会员

Rank: 3Rank: 3

积分
1096
发表于 2018-9-21 16:23:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. package main

  2. import (
  3.         "fmt"
  4. )

  5. func main() {
  6.         // 创建一个映射,键的类型是string,值的类型是int
  7.         // dict := make(map[string]int)
  8.         // 创建一个映射,键和值的类型都是string
  9.         // 使用两个键值对初始化映射
  10.         dict2 := map[string]string{"a": "aa", "b": "bb"}
  11.         // 创建映射时,更常用的方法是使用映射字面量。映射的初始长度会根据初始化时指定的键值对的数量确定。

  12.         // 通过声明一个未初始化的映射来创建一个值为nil的映射(称为nil映射)。nil映射不能用于存储键值对,否则,会产生一个语言运行时错误
  13.         // 通过声明映射创建一个nil映射
  14.         // var colors map[string]string

  15.         // 创建一个空映射,用来存储用户名以及用户性别
  16.         profile := map[string]string{}
  17.         profile["lucy"] = "girl"

  18.         // 判断映射里是否存在某个键
  19.         // 方案1
  20.         value, exists := profile["lucy"]
  21.         if exists {
  22.                 fmt.Println(value)
  23.         }
  24.         // 方案2
  25.         value1 := profile["lucy"]
  26.         if value1 != "" {
  27.                 fmt.Println(value1)
  28.         }
  29.         // 通过键来索引映射时,即便这个键不存在也总会返回一个值。这种情况下,返回的是该值对应的类型的零值

  30.         // 迭代映射
  31.         for key, value := range dict2 {
  32.                 fmt.Printf("key: %s value: %s\n", key, value)
  33.         }

  34.         // 从映射里删除一个键值对
  35.         delete(dict2, "b")
  36.         for key, value := range dict2 {
  37.                 fmt.Printf("key: %s value: %s\n", key, value)
  38.         }
  39.         // 这次在迭代映射时,键b不存在了
  40. }
复制代码


*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

     
    战略合作|联系方式|广告赞助|商务合作|手机版|小黑屋|( 京ICP备14036609号-6 )

GMT+8, 2018-10-18 02:13

© 2013-2017 Powered by Discuz! X3.3. 本站由 又拍云 提供 CDN 图片存储服务

快速回复 返回顶部 返回列表