1 前言

仅供记录使用。

2 代码

/**
* @Author: FB
* @Description:
* @File: SliceMapInit.go
* @Version: 1.0.0
* @Date: 2019/7/5 14:39
*/ package main import "fmt" func main(){
InitSlice()
InitMap()
} func InitSlice(){
//三个等价
var a []int
var a1 = []int{}
var b = make([]int,0)
var b2 = make([]int,0,0) //报错
//a[0] = 1
//b[0] = 2
showVals(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] = 1
d[0] = 2
showVals(c,d,d2)
showVals("---------end 2---------") //报错,因为长度只有3
//d[3] = 3
showVals(d,len(d),cap(d)) //报错,因为长度只有3
//d3[3] = 3
showVals(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]string
showVals(a)
// add these lines:
/*
myGreeting["Tim"] = "Good morning."
myGreeting["Jenny"] = "Bonjour."
*/
// and you will get this:
// panic: assignment to entry in nil map //OK
var b = make(map[string]string)
//等价写法shorthand_make
//b := make(map[string]string) //init
b["Tim"] = "Good morning."
b["Jenny"] = "Bonjour."
showVals(b) //OK
c := map[string]string{}
//init
c["Tim"] = "Good morning."
c["Jenny"] = "Bonjour."
showVals(c) //init
c1 := 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()
}

  

Golang slice和map的申明和初始化的更多相关文章

  1. 高级数据类型(arrary、slice、map、ptr)

    高级数据类型: 高级数据类型有数组.切片.map.指针.结构体.函数.接口.通道等,本文只介绍Arrary.Slice.map.ptr. 数组: (1)概念: 数组是同一种数据类型的集合.数组从声明时 ...

  2. Golang高效实践之array、slice、map

    前言 Golang的slice类型为连续同类型数据提供了一个方便并且高效的实现方式.slice的实现是基于array,slice和map一样是类似于指针语义,传递slice和map并不涉及底层数据结构 ...

  3. go基础之基本数据结构(数组、slice、map)

    go基本的数据结构有数组.slice.map,高级数据结构为结构体为用户自定义类型.本片文章主要讲解三大基本数据结构. 数组 slice Map 数组 数组是包含单个类型的元素序列,但是长度固定的数据 ...

  4. go 数组(array)、切片(slice)、map、结构体(struct)

    一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...

  5. go语言的 数组、slice、map使用(转)

    golang群 点击加入 go语言的 数组.slice.map使用, 由于网上有很好的说明, 不需要再写了,请看这几篇: Go语言中的 Array, Slice和 Map 深入学习golang五篇,以 ...

  6. Go语言—— Array,Slice,Map 和 Set

    转自:https://se77en.cc/ Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型 ...

  7. Golang Slice 总结

    数组 Go的切片是在数组之上的抽象数据类型,因此在了解切片之前必须要要理解数组.数组类型由指定和长度和元素类型定义.数组不需要显式的初始化:数组元素会自动初始化为零值:Go的数组是值语义.一个数组变量 ...

  8. Golang基础教程——map使用篇

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第7篇文章,我们来聊聊golang当中map的用法. map这个数据结构我们经常使用,存储的是key-value的键 ...

  9. 记一次坑爹的golang 二维map判断问题

    记一次坑爹的golang 二维map判断问题 2018年10月18日 23:16:21 yinnnnnnn 阅读数:32更多 个人分类: golang   版权声明:本文为博主原创文章,未经博主允许不 ...

随机推荐

  1. linux操作系统与jvm

    线程调度 https://www.cnblogs.com/xiaotlili/p/3510224.html

  2. iptables只允许指定ip访问本机的指定端口

    首先,清除所有预设置 iptables -F 其次,设置只允许指定ip地址访问指定端口 1.在tcp协议中,禁止所有的ip访问本机的1521端口. iptables -I INPUT -p tcp - ...

  3. 关于redis为什么不支持回滚操作.

    redis 不支持会滚操作的说明.

  4. prometheus(docker)安装和报警 -- nginx域名监控

    软件组件:prometheusalertmanagerprometheus-webhook-dingtalk nginx-vts-exporternginx (###--add-module=../n ...

  5. 【Gamma】Scrum Meeting 1

    目录 写在前面 gamma阶段角色更换 进度情况 任务进度表 Gamma阶段燃尽图 遇到的困难 照片 代码Commit记录 后端 前端 写在前面 例会时间:5.25 22:30-23:00 例会地点: ...

  6. Ubuntu16.04.1上搭建分布式的Redis集群,并使用C#操作

    为什么要集群: 通常为了,提高网站的响应速度,总是把一些经常用到的数据放到内存中,而不是放到数据库中,Redis是一个很好的Cache工具,当然了还有Memcached,这里只讲Redis.在我们的电 ...

  7. Linux系统下zookeeper客户端命令使用

    1. 启动客户端 [admin@yrjk bin]$ ./zkCli.sh [zk: localhost:2181(CONNECTED) 0] 2. 显示所有操作命令 [zk: localhost:2 ...

  8. httpcomponents 发送get post请求

    引入的包为: <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <de ...

  9. Gradle 教程: 教你配置全局国内仓库,解决新建项目卡顿,下载构建慢等问题

    想必各位从Maven 转过来的大佬们,对于maven中配置国内仓库的方法还记忆深刻.通过/用户目录下/.m2/settings.xml 局部配置或者修改全局配置.不过没有接触过maven 也不要紧,可 ...

  10. Android ConstraintLayout 小记

    * 可以圆形定位view之间的位置,通过View的中心,来定位不同半径和弧度的距离. layout_constraintCircle : references another widget id la ...