GO语言学习-复杂类型(1)
2014-12-11 16:27
274 查看
指针
GO的指针用法与C语言中指针用法类似,&用于取址, *用于取值。唯一区别:没有指针运算
结构体
例:
type struct_example struct {
a int
b int
}
结构体字段的访问与C语言相同,用点号来访问。
当用结构体指针来访问字段时,也使用点号来访问。
数组
定义方法: var a[666] int
使用方法与C类似,但GO中数组名是一个值,而C中数组名是一个指针。另外GO中数组长度不能改变。
如果长度写成 [...],GO编译器会根据定义的元素来推导长度
例: a := [...]int{1,2,3,4,5}
数组切片 slice
slice就像是一种动态数组,可以改变长度。
slice是对底层数组的抽象和控制,包含三种元数据。
1.指向数组的指针
2.slice的长度
3.slice的容量,即最大长度
定义方法例 a := [ ]int{1,2,3,4,5,6}
给定一个array或者其他slice,一个新的slice通过a[I:J]的方式创建。
这会创建一个新的slice,指向变量a,从序号I开始,结束在序号J之前,长度为J-I
例:
q := a[1:3] //即 q 为 { 2,3 }的slice
可以使用make函数来构造slice
例;
a := make([]int,2,5) //定义成功的slice的长度为2,容量为5.
slice的零值是nil
可以使用append函数向slice添加元素,使slice变长。slice会自动调整容量,即调整数组长度,如果追加的内容长度超过当前的容量时,slice会自动在分配一块足够大的内存。
可以使用range格式对slice进行迭代循环。(使用range时可以通过赋值给 _ 来忽略序号或值)
可以使用copy函数对两个slice进行复制。如果这两个slice长度不同时,会按照长度小slice中的元素个数进行复制。
GO的指针用法与C语言中指针用法类似,&用于取址, *用于取值。唯一区别:没有指针运算
结构体
例:
type struct_example struct {
a int
b int
}
结构体字段的访问与C语言相同,用点号来访问。
当用结构体指针来访问字段时,也使用点号来访问。
数组
定义方法: var a[666] int
使用方法与C类似,但GO中数组名是一个值,而C中数组名是一个指针。另外GO中数组长度不能改变。
如果长度写成 [...],GO编译器会根据定义的元素来推导长度
例: a := [...]int{1,2,3,4,5}
数组切片 slice
slice就像是一种动态数组,可以改变长度。
slice是对底层数组的抽象和控制,包含三种元数据。
1.指向数组的指针
2.slice的长度
3.slice的容量,即最大长度
定义方法例 a := [ ]int{1,2,3,4,5,6}
给定一个array或者其他slice,一个新的slice通过a[I:J]的方式创建。
这会创建一个新的slice,指向变量a,从序号I开始,结束在序号J之前,长度为J-I
例:
q := a[1:3] //即 q 为 { 2,3 }的slice
可以使用make函数来构造slice
例;
a := make([]int,2,5) //定义成功的slice的长度为2,容量为5.
slice的零值是nil
可以使用append函数向slice添加元素,使slice变长。slice会自动调整容量,即调整数组长度,如果追加的内容长度超过当前的容量时,slice会自动在分配一块足够大的内存。
可以使用range格式对slice进行迭代循环。(使用range时可以通过赋值给 _ 来忽略序号或值)
可以使用copy函数对两个slice进行复制。如果这两个slice长度不同时,会按照长度小slice中的元素个数进行复制。
相关文章推荐
- GO语言学习-复杂类型(2)
- Go语言学习二:Go基础(变量、常量、数值类型、字符串、错误类型)
- Go语言学习之数据类型
- go语言学习-golang的基本数据类型
- 【Go学习笔记】go语言中的基本数据类型和包的介绍(一)
- go语言学习-golang的基本数据类型
- Go语言学习笔记1 变量,类型以及赋值
- Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
- Go语言学习(3)-类型
- 【Go学习】浅析Go语言Interface类型的语法行为及用法
- Go语言学习笔记(二) [变量、类型、关键字]
- Go语言学习九:Map(集合)、递归函数、类型转换
- Go语言学习笔记(二) [变量、类型、关键字]
- go语言学习笔记(7) 类型-复合类型
- Go语言学习笔记--类型、指针、面向对象
- Go语言学习四:struct类型
- Go语言学习笔记(4)复合类型
- Go语言学习(三)枚举和类型
- Go语言学习笔记之基本数据类型
- 8.笔记go语言——复杂类型struct,slice,map