Golang slice和map的申明和初始化
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的申明和初始化相关推荐
- golang slice map扩容
golang slice 扩容 操作系统预分配的内存规格 byte 8 16 32 64 80 96 112- 先求出当前切片容量x,求出append追加后的容量 y 判断 x*2 和y 的关系 1 ...
- 记一次golang中sync.Map并发创建、读取的问题
记一次golang中sync.Map并发创建.读取的问题 cunfate https://www.jianshu.com/p/f472e79909bc 背景: 我们有一个用go做的项目,其中用到了z ...
- Go语言的复合数据类型struct,array,slice,map
1.结构体 struct 定义格式: type 结构体名称 struct {属性1 类型属性2 类型... } 结构体的初始化可以使用new关键词和var关键词,不同的是如果使用new,则返回类型是一 ...
- Golang Slice切片如何扩容
Golang Slice切片如何扩容 Golang轻松学习 文章目录 Golang Slice切片如何扩容 一.Slice数据结构是什么? 二.详细代码 1.数据结构 2.扩容原则 2.如何理解扩容规 ...
- golang struct 转map 及 map[string]*Struct 初始化和遍历
package mainimport ("encoding/json""errors""fmt""reflect"&qu ...
- php 创建 map,golang如何创建map
map是一堆键值对的未排序集合,类似Python中字典的概念,它的格式为map[keyType]valueType,是一个key-value的hash结构.map的读取和设置也类似slice一样,通过 ...
- golang 结构体 map 转化为 json
目录 结构体生成json json转成结构体 map生成json json转化为map 结构体生成json package mainimport ("encoding/json"& ...
- Golang slice原理
数组 slice类型是建立在Go数组类型之上的抽象,因此要了解slice我们必须首先了解数组. 数组类型定义了长度和元素类型.例如,[4]int 类型表示一个由四个整数组成的数组.数组的大小是固定的, ...
- floatmap 二维数组_Golang学习笔记(四):array、slice、map
一.Array 在Go语言中,数组是一个值类型(value type) 所有的值类型变量在赋值和作为参数传递时都将产生一个复制动作 如果作为函数的参数类型,则在函数调用时参数发生数据复制,在函数体中无 ...
最新文章
- 那些美的让人流连忘返的风景照片
- 算法题 身高差_10个大数据处理常见算法题
- C++shell sort希尔排序的实现算法之一(附完整源码)
- 面试ASP.NET程序员的笔试题和机试题(转,有点意思,答案不是很标准)
- Netweaver的传输机制和SAP Cloud for Customer
- GCC如何产生core dump
- 设计模式之适配器模式(Adapter Pattern)
- Python会赶超Java吗_Python 赶超 Java,JavaScript 稳坐第一 | GitHub
- linux中和salt中的fqdn测试小节
- 小米 Notebook Air 2016 13.3黑苹果efi引导文件
- JPEG中Huffman解码实例讲解
- 如何给客户做产品培训
- 计算机mac地址为空,怎么查看电脑的Mac地址
- 五.爬虫--京东登录破解(一)
- 最漂亮的人是为梦想而努力的人
- 【已更新】万能门店小程序独立版V5.1二开完整版 无限DIY+不限制小程序生成数量+数10款插件
- Elasticsearch:ingest pipeline 使用示例 - 解析常用日志格式
- linux下rdesktop用法
- android 键盘偶现收起之后又弹出
- 关于svn在eclipse中上传和拉取代码
热门文章
- 设计模式-装饰模式(Decorator Pattern)
- 详解Scala函数也是对象的特性
- golang goroutine协程概念及入门:轻量级线程(或用户态线程)
- 使用npm init生成package.json
- Spring整合ActiveMQ完成消息队列MQ编程
- java 钩子_java中钩子方法的概念
- 使用@Valid进行Spring验证bindingresult 用法
- C/C++基础知识点(四)
- C++设计模式--观察者模式(Observer)
- 设计模式理解:策略模式