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. [Gamma]Scrum Meeting#4

    github 本次会议项目由PM召开,时间为5月29日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译 ...

  2. window系统对应默认IE浏览器版本

  3. Video标签动态修改src地址播放问题

    不管在React或Vue中,将一个变量赋值给src属性,当修改这个变量的值时,video播放的还是原来的视频. Vue中 <video id="root"> <s ...

  4. js正则判断字符串中是否包含特殊字符和空格

    字符串只能是数字.字母和中文组成,不能包含特殊符号和空格. /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/

  5. js - true和false

    JavaScript的true和false什么时候会出现,如何优雅的写判断条件? 以下条件为false,也可称为“falsy” - > 虚值 if (false) if (null) if (u ...

  6. 使用Rome读取RSS报错,org.xml.sax.SAXParseException: 前言中不允许有内容。

    这是我遇到过的最奇葩的错误 new URL的时候,使用静态变量就会报错org.xml.sax.SAXParseException: 前言中不允许有内容. URL url = new URL(Strin ...

  7. MySQL Unknown table engine 'FEDERATED''

    Last_SQL_Error: Error 'Unknown table engine 'FEDERATED'' on query. 错误 解决过程: 1.查看当前支持的存储引擎    show en ...

  8. scrapy中的middleware

    反反爬虫相关机制 Some websites implement certain measures to prevent bots from crawling them, with varying d ...

  9. GOROOT、GOPATH、GOBIN、project目录 _(转)

    前言:我觉得java程序员学golang很容易上手.关于GOROOT.GOPATH.GOBIN这些环境变量的设置,我隐约感觉到了java的影子(尽管我是一个C++程序员),唯一和java不同的是不能设 ...

  10. Linux终端复制粘贴后前后会多出0~和~1

    在终端中执行即可 printf "\e[?2004l" 在终端无法复制问题 set mouse=r