zoukankan      html  css  js  c++  java
  • 55_Go基础_1_22 map 基本用法

      1 package main
      2 
      3 import "fmt"
      4 
      5 func main() {
      6     /*
      7         map:映射,是一种专门用于存储键值对的集合。属于引用类型
      8 
      9         存储特点:
     10             A:存储的是无序的键值对
     11             B:键不能重复,并且和value值一一对应的。
     12                     map中的key不能重复,如果重复,那么新的value会覆盖原来的,程序不会报错。
     13 
     14         语法结构:
     15             1.创建map
     16                 var map1 map[key类型]value类型
     17                     nil map,无法直接使用
     18 
     19                 var map2 = make(map[key类型])value类型
     20 
     21                 var map3 = map[key类型]value类型{key:value,key:value,key:value...}
     22 
     23             2.添加/修改
     24                 map[key]=value
     25                     如果key不存在,就是添加数据
     26                     如果key存在,就是修改数据
     27 
     28             3.获取
     29                 map[key]-->value
     30 
     31                 value,ok := map[key]
     32                     根据key获取对应的value
     33                         如果key存在,value就是对应的数据,ok为true
     34                         如果key不存在,value就是值类型的默认值,ok为false
     35 
     36             4.删除数据:
     37                 delete(map,key)
     38                     如果key存在,就可以直接删除
     39                     如果key不存在,删除失败
     40 
     41             5.长度:
     42                 len()
     43 
     44 
     45         每种数据类型:
     46             int:0
     47             float:0.0-->0
     48             string:""
     49             array:[00000]
     50 
     51             slice:nil
     52             map:nil
     53 
     54     */
     55 
     56     // 1.创建map
     57     var map1 map[int]string         // 没有初始化,nil
     58     var map2 = make(map[int]string) // 创建,初始化
     59     var map3 = map[string]int{"Go": 98, "Python": 87, "Java": 79, "Html": 93}
     60     fmt.Println(map1) // map[]
     61     fmt.Println(map2) // map[]
     62     fmt.Println(map3) // map[Go:98 Html:93 Java:79 Python:87]
     63 
     64     fmt.Println(map1 == nil) // true
     65     fmt.Println(map2 == nil) // false
     66     fmt.Println(map3 == nil) // false
     67 
     68     // 2.nil map
     69     if map1 == nil {
     70         map1 = make(map[int]string)
     71         fmt.Println(map1 == nil) // false
     72     }
     73 
     74     // 3.存储键值对到map中
     75     // map1[key] = value
     76     map1[1] = "hello" // 如果没有初始化,panic: assignment to entry in nil map
     77     map1[2] = "world"
     78     map1[3] = "memeda"
     79     map1[4] = "王二狗"
     80     map1[5] = "ruby"
     81     map1[6] = "三胖思密达"
     82     map1[7] = ""
     83 
     84     // 4.获取数据,根据key获取对应的value值
     85     // 根据key获取对应的value,如果key存在,获取数值,如果key不存在,获取的是value值类型的零值
     86     fmt.Println(map1)     // map[1:hello 2:world 3:memeda 4:王二狗 5:ruby 6:三胖思密达 7:]
     87     fmt.Println(map1[4])  // 根据key为4,获取对应的value值 王二狗
     88     fmt.Println(map1[40]) // ""
     89 
     90     v1, ok := map1[40]
     91     if ok {
     92         fmt.Println("对应的数值是:", v1)
     93     } else {
     94         fmt.Println("操作的key不存在,获取到的是零值:", v1) // 操作的key不存在,获取到的是零值:
     95     }
     96 
     97     // 5.修改数据
     98     fmt.Println(map1) // map[1:hello 2:world 3:memeda 4:王二狗 5:ruby 6:三胖思密达 7:]
     99     map1[3] = "如花"
    100     fmt.Println(map1) // map[1:hello 2:world 3:如花 4:王二狗 5:ruby 6:三胖思密达 7:]
    101 
    102     // 6.删除数据
    103     delete(map1, 3)
    104     fmt.Println(map1) // map[1:hello 2:world 4:王二狗 5:ruby 6:三胖思密达 7:]
    105     delete(map1, 30)
    106     fmt.Println(map1) // map[1:hello 2:world 4:王二狗 5:ruby 6:三胖思密达 7:]
    107 
    108     // 7.长度
    109     fmt.Println(len(map1)) // 6
    110 
    111 }
  • 相关阅读:
    理解区块链之前,先上手体验一把数字货币(2018-04-06 陈浩 第6讲)
    约瑟夫·卢宾《以太坊:从底层揭秘区块链应用和机会》2018-04-21
    以太坊智能合约介绍,Solidity介绍
    新浪微博 [异常问题] 414 Request-URL Too Large
    Google自动广告,将广告代码放置在 HTML 中的什么位置?
    囤币一族,被中国市场遗忘的价值币ADA
    基于EOS开发的Dapp大全
    朴素贝叶斯算法,贝叶斯分类算法,贝叶斯定理原理
    区块链3.0 ada Cardano卡尔达诺如何获得一致好评?
    拜占庭将军问题(Byzantine Generals Problem),一个关于分布式系统容错问题故事
  • 原文地址:https://www.cnblogs.com/luwei0915/p/15628798.html
Copyright © 2011-2022 走看看