Golang slice和map的申明和初始化
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的申明和初始化的更多相关文章
- 高级数据类型(arrary、slice、map、ptr)
高级数据类型: 高级数据类型有数组.切片.map.指针.结构体.函数.接口.通道等,本文只介绍Arrary.Slice.map.ptr. 数组: (1)概念: 数组是同一种数据类型的集合.数组从声明时 ...
- Golang高效实践之array、slice、map
前言 Golang的slice类型为连续同类型数据提供了一个方便并且高效的实现方式.slice的实现是基于array,slice和map一样是类似于指针语义,传递slice和map并不涉及底层数据结构 ...
- go基础之基本数据结构(数组、slice、map)
go基本的数据结构有数组.slice.map,高级数据结构为结构体为用户自定义类型.本片文章主要讲解三大基本数据结构. 数组 slice Map 数组 数组是包含单个类型的元素序列,但是长度固定的数据 ...
- go 数组(array)、切片(slice)、map、结构体(struct)
一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...
- go语言的 数组、slice、map使用(转)
golang群 点击加入 go语言的 数组.slice.map使用, 由于网上有很好的说明, 不需要再写了,请看这几篇: Go语言中的 Array, Slice和 Map 深入学习golang五篇,以 ...
- Go语言—— Array,Slice,Map 和 Set
转自:https://se77en.cc/ Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型 ...
- Golang Slice 总结
数组 Go的切片是在数组之上的抽象数据类型,因此在了解切片之前必须要要理解数组.数组类型由指定和长度和元素类型定义.数组不需要显式的初始化:数组元素会自动初始化为零值:Go的数组是值语义.一个数组变量 ...
- Golang基础教程——map使用篇
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第7篇文章,我们来聊聊golang当中map的用法. map这个数据结构我们经常使用,存储的是key-value的键 ...
- 记一次坑爹的golang 二维map判断问题
记一次坑爹的golang 二维map判断问题 2018年10月18日 23:16:21 yinnnnnnn 阅读数:32更多 个人分类: golang 版权声明:本文为博主原创文章,未经博主允许不 ...
随机推荐
- 一条简单的 SQL 执行超过 1000ms,纳尼?
阅读本文大概需要 2.8 分钟. MySQL 对我说 “Too young, too naive!" ▌大概过程 在测试环境 Docker 容器中,在跨进程调用服务的时候,A 应用通过 Du ...
- Xshell远程登录
1.xshell由一台服务器a登录另一台服务器b sftp -oPort = root@ip 2.下载git /上传pull git b服务器想下载的目标文件目录 a服务器上的文件下载目录
- springboot框架在容器加载完成之后执行某个方法
问题描述: 想在websocket实现的Handler中执行一些初始化操作,但是初始化操作使用到了@Autowired自动注入的变量,而且是保护类型.第一个想法是放到Handler构造函数中执行,但是 ...
- ASP.NET Core 的 Dependency Injection
ASP.NET Core使用了大量的DI(Dependency Injection)设计,有用过Autofac或类似的DI Framework对此应该不陌生.本篇将介绍ASP.NET Core的依赖注 ...
- visual studio 2019 企业版下载
由于visual studio从2017开始就是网络下载安装,所以网速慢的朋友安装上就存在时间感,所以笔者在百度云上提供了visual studio 2019的下载包.需要的朋友自己下载安装.不过,2 ...
- Parquet介绍及简单使用(转)
==> 什么是parquet Parquet 是列式存储的一种文件类型 ==> 官网描述: Apache Parquet is a columnar storage f ...
- 微信支付:URL未注册问题
起因:一个项目已经做好了,微信支付也调通的,域名 www.xxxx.com ,某天客户需要换域名,改为weixin.xxxx.com, 原先的www转向客户自己的官网,结果换了之后,发现微信支付出错: ...
- CentOS 7 卸载OpenJdk安装Oracle Jdk1.8
CentOS 7 卸载OpenJdk安装Oracle Jdk1.81.查询openjdk:rpm -qa | grep jdk2.卸载OpenJdkrpm -e --nodeps 查询到的结果3.安装 ...
- log-structured-merge-trees
https://juejin.im/post/5bbbf7615188255c59672125 https://www.cnblogs.com/siegfang/archive/2013/01/12/ ...
- Java之字符和字符串
字符类型 字符类型char是基本数据类型,它是character的缩写.一个char保存一个Unicode字符: char c1='A'; char c2='中'; 因为Java在内存中总是使用Uni ...