1 前言

仅供记录使用。

2 代码

/*** @Author: FB* @Description: * @File:  SliceMapInit.go* @Version: 1.0.0* @Date: 2019/7/5 14:39*/package mainimport "fmt"func main(){InitSlice()InitMap()
}func InitSlice(){//三个等价var a []intvar a1 = []int{}var b = make([]int,0)var b2 = make([]int,0,0)//报错//a[0] = 1//b[0] = 2showVals(a,a1,b,b2)showVals("---------end 1---------")//三个等价var c = []int{0,0,0}var d = make([]int,3)var d2 = make([]int,3,3)var d3 = make([]int,3,5)c[0] = 1d[0] = 2showVals(c,d,d2)showVals("---------end 2---------")//报错,因为长度只有3//d[3] = 3showVals(d,len(d),cap(d))//报错,因为长度只有3//d3[3] = 3showVals(d3,len(d3),cap(d3))showVals("---------end 3---------")//append 以上两种情况都可以a = append(a,1,2,3)b = append(b,1,2,3)d = append(d,1,2,3)d3 = append(d3,1,2,3)showVals("a",a,len(a),cap(a))showVals("b",b,len(b),cap(b))showVals("d",d,len(d),cap(d))showVals("d3",d3,len(d3),cap(d3))}func InitMap(){var a map[string]stringshowVals(a)// add these lines:/*myGreeting["Tim"] = "Good morning."myGreeting["Jenny"] = "Bonjour."*/// and you will get this:// panic: assignment to entry in nil map//OKvar b = make(map[string]string)//等价写法shorthand_make//b := make(map[string]string)//initb["Tim"] = "Good morning."b["Jenny"] = "Bonjour."showVals(b)//OKc := map[string]string{}//initc["Tim"] = "Good morning."c["Jenny"] = "Bonjour."showVals(c)//initc1 := map[string]string{"Tim":   "Good morning!","Jenny": "Bonjour!",}c1["FB"] = "Hi"c1["Jenny"] = "Hello"c1["Jenny2"] = "Hello2"showVals(c1,len(c1))delete(c1,"Jenny2")showVals(c1)//key := "FB2"key := "FB"if val, exists :=  c1[key];exists{showVals(val)delete(c1,key)showVals(c1)}else{showVals("no found",key)}//遍历for key, val := range c1 {fmt.Println(key, " - ", val)}}func showVals(vals ...interface{}){for _,v :=range vals{fmt.Print(v,"\t")}fmt.Println()
}

  

转载于:https://www.cnblogs.com/fanbi/p/11138537.html

Golang slice和map的申明和初始化相关推荐

  1. golang slice map扩容

    golang slice 扩容 操作系统预分配的内存规格 byte 8 16 32 64 80 96 112- 先求出当前切片容量x,求出append追加后的容量 y 判断 x*2 和y 的关系 1 ...

  2. 记一次golang中sync.Map并发创建、读取的问题

    记一次golang中sync.Map并发创建.读取的问题  cunfate https://www.jianshu.com/p/f472e79909bc 背景: 我们有一个用go做的项目,其中用到了z ...

  3. Go语言的复合数据类型struct,array,slice,map

    1.结构体 struct 定义格式: type 结构体名称 struct {属性1 类型属性2 类型... } 结构体的初始化可以使用new关键词和var关键词,不同的是如果使用new,则返回类型是一 ...

  4. Golang Slice切片如何扩容

    Golang Slice切片如何扩容 Golang轻松学习 文章目录 Golang Slice切片如何扩容 一.Slice数据结构是什么? 二.详细代码 1.数据结构 2.扩容原则 2.如何理解扩容规 ...

  5. golang struct 转map 及 map[string]*Struct 初始化和遍历

    package mainimport ("encoding/json""errors""fmt""reflect"&qu ...

  6. php 创建 map,golang如何创建map

    map是一堆键值对的未排序集合,类似Python中字典的概念,它的格式为map[keyType]valueType,是一个key-value的hash结构.map的读取和设置也类似slice一样,通过 ...

  7. golang 结构体 map 转化为 json

    目录 结构体生成json json转成结构体 map生成json json转化为map 结构体生成json package mainimport ("encoding/json"& ...

  8. Golang slice原理

    数组 slice类型是建立在Go数组类型之上的抽象,因此要了解slice我们必须首先了解数组. 数组类型定义了长度和元素类型.例如,[4]int 类型表示一个由四个整数组成的数组.数组的大小是固定的, ...

  9. floatmap 二维数组_Golang学习笔记(四):array、slice、map

    一.Array 在Go语言中,数组是一个值类型(value type) 所有的值类型变量在赋值和作为参数传递时都将产生一个复制动作 如果作为函数的参数类型,则在函数调用时参数发生数据复制,在函数体中无 ...

最新文章

  1. 那些美的让人流连忘返的风景照片
  2. 算法题 身高差_10个大数据处理常见算法题
  3. C++shell sort希尔排序的实现算法之一(附完整源码)
  4. 面试ASP.NET程序员的笔试题和机试题(转,有点意思,答案不是很标准)
  5. Netweaver的传输机制和SAP Cloud for Customer
  6. GCC如何产生core dump
  7. 设计模式之适配器模式(Adapter Pattern)
  8. Python会赶超Java吗_Python 赶超 Java,JavaScript 稳坐第一 | GitHub
  9. linux中和salt中的fqdn测试小节
  10. 小米 Notebook Air 2016 13.3黑苹果efi引导文件
  11. JPEG中Huffman解码实例讲解
  12. 如何给客户做产品培训
  13. 计算机mac地址为空,怎么查看电脑的Mac地址
  14. 五.爬虫--京东登录破解(一)
  15. 最漂亮的人是为梦想而努力的人
  16. 【已更新】万能门店小程序独立版V5.1二开完整版 无限DIY+不限制小程序生成数量+数10款插件
  17. Elasticsearch:ingest pipeline 使用示例 - 解析常用日志格式
  18. linux下rdesktop用法
  19. android 键盘偶现收起之后又弹出
  20. 关于svn在eclipse中上传和拉取代码

热门文章

  1. 设计模式-装饰模式(Decorator Pattern)
  2. 详解Scala函数也是对象的特性
  3. golang goroutine协程概念及入门:轻量级线程(或用户态线程)
  4. 使用npm init生成package.json
  5. Spring整合ActiveMQ完成消息队列MQ编程
  6. java 钩子_java中钩子方法的概念
  7. 使用@Valid进行Spring验证bindingresult 用法
  8. C/C++基础知识点(四)
  9. C++设计模式--观察者模式(Observer)
  10. 设计模式理解:策略模式