Data
分配
通过new和make分配空间:
- new分配空间,返回指针
- make可以进行生成slices,maps,channels,返回类型
| |
数组(Arrays)和切片(Slices)
go中更推荐使用切片而不是数组。
- 数组长度固定
- 切片可以动态调整容量(cap)
| |
二维切片(Two-dimensional Slices)
下面是二位数组和二位切片的示例。
| |
Maps
key,value形式的数据结构,key可以是整数,浮点数,复数,字符串,指针,接口,结构体,数组。
切片不能做为key值由于他是变化的。
获取map中value, 可以通过以下方式,可以通过ok值判断,键值对是否存在。
| |
Printing
打印方面类似C语言,主要存放在fmt包中,fmt.Printf, fmt.Fprintf, fmt.Sprintf
go by example的 String Formatting
| |
初始化(Initialization)
- 常量
- 变量
- init函数: 可以在这个函数中做一些初始化的操作。
| |
方法
指针vs值
golang中指针也用.而不使用->, 用指针减少函数传递时的内存拷贝, 对原有引用数据有影响。
| |
可以通过return或者指针两种方式更新切片的值。另外,对于结构定义的方法通过指针和结构都可以调用, 只是如果方法定义是使用结构模式 func (p struct XX) funcXX(xx), 那么参数传入方式时会进行结构复制,使用指针 func (p *struct XX) funcXX(xx)则不会。
参考及引用
Photo by Philippe Donn from Pexels