内容速览
本文包含Go语言的简单入门语法,值类型和引用类型,silce切片,map映射
本文适合人群
具有一定编程语言基础(如:C/C++,java等),并且想要快速入门Go语言的同学
值类型和引用类型
值类型:直接对值操作的类型,包括
1.基本数据类型(int,float等)
2.struct结构体
3.数组
复制代码
引用类型:通过指针(引用)对内存单元操作的类型,包括
1.silce切片
2.map映射
3.其他容器
复制代码
数组和切片slice
- 声明:
//一维数组 格式1:var 数组名 [长度] 类型 格式2:[var 数组名 =]/[数组名 := ] [长度]类型{值1,值2,...} 格式3:[var 数组名 =]/[数组名 := ] [...]/[]类型{值1,值2,...} //多维数组 格式4:var 数组名 = [长度][长度]...类型{{值1,值2,...},{值1,值2,...},...} 格式5:var 数组名 = [][]...类型{{值1,值2,...},{值1,值2,...},...} 复制代码
- 注意:缺省的数组即为切片
- 索引:
- 下标索引:
数组名[下标]
- 注意:超过长度的部分不可索引,尽管容量有余
- 切片索引:
数组名[start:end]
,取出[start,end)的元素
- 下标索引:
- len()方法和cap()方法
len()
:计算长度,即当前容器使用单元数cap()
:计算容量,即当前容器最大单元数
- make()方法:声明切片
make([]类型, len, cap)
:参数分别为切片类型,长度,容量(缺省时默认等于长度)
- append()方法:复制一份切片并添加元素,超出容量自动扩容(容量=长度*2)
append([]类型, elem1, elem2, ... )
append([]类型, 切片)
- 注意:
- 数组的复制操作是深拷贝,要转浅拷贝请在复制时在数组名前使用
&
取地址 - 数组的比较操作是比较其内容是否一致而不是地址是否一致
- 数组是一个值类型,就是数据内容本身
- 切片是一个引用类型,本质是一个数组的引用
- 数组的复制操作是深拷贝,要转浅拷贝请在复制时在数组名前使用
映射map
-
声明:
var 映射名 map[keytype]valuetype var 映射名 = map[keytype]valuetype{k:v, ... } 映射名 := map[keytype]valuetype{k:v, ... } make(map[keytype]datatype) 复制代码
-
增删改查
1、增: map[key] = value 2、删 delete(map, key) 3、改 map[key] = value 4、查 val = map[key] val, ok = map[key] //ok(boolean)检测取值是否真实存在 复制代码
Go语言快速入门笔记系列传送门
Go语言快速入门笔记(1)--变量var,分支if else,循环for,fmt简单输入输出
Go语言快速入门笔记(2)--值类型和引用类型,silce切片,map映射
Go语言快速入门笔记(3)--函数,指针,srtuct结构体,interface接口,Error错误,panic恐慌和recover恢复
有疑问加站长微信联系(非本文作者)