Golang快速指南
基本数据类型
数值类型 | 说明 |
---|---|
bool | 布尔 |
string | 字符 |
int,int8,int16,int32,int64 | int长度与平台相关 |
uint,uint8,uint16,uint32,uint64 | uint长度与平台相关 |
uintptr | 同指针,32位平台为4字节,64位八字节 |
byte | 等价于uint8 |
rune | 等价于uint32,单个unicode字符 |
float32,float64 | |
complex64,complex128 | 复数类型, value = 3.2+12i |
map
在其他编程语言中也称为字典(Python)、hash 和 HashTable 等
var mapname map[keytype]valuetype
var intSet = map[int]int {1:1, 2:2}
intSet[3] = 3
val, ok := intSet[5] // val=0, ok=false
var stringSet = map[string]int {"one":1, "two":2}
stringSet['three'] = 3
三个点的用法
在Golang中,三个点一共会用在四个地方
变长的函数参数
如果最后一个函数参数的类型的是…T,那么在调用这个函数的时候,我们可以在参数列表的最后使用若干个类型为T的参数。 这里,…T在函数内部的类型实际是[]T.
func Sum(nums ...int) int {
res := 0
for _, n := range nums {
res += n
}
return res
}
Sum(1,2,3)
调用拥有变长参数列表的函数
上面调用Sum函数时,是将变长参数分开写的。如果我们有一个slice,那么我们调用时不必将slice拆开再调用,直接在slice后跟…即可:
primes := []int{2, 3, 5, 7}
fmt.Println(Sum(primes...)) // 17
标识数组元素个数
这里,…意味着数组的元素个数:
stooges := [...]string{"Moe", "Larry", "Curly"} // len(stooges) == 3
Go命令行中的通配符
描述包文件的通配符。 在这个例子中,会单元测试当前目录和所有子目录的所有包:
go test ./...
go语言的数组和(Slices)切片区别
- 数组:类型 [n]T 表示拥有 n 个 T 类型的值的数组。
- 切片:类型 []T 表示一个元素类型为 T 的切片。
数组是值类型,换句话说,如果你将一个数组赋值给另外一个数组,那么,实际上就是将整个数组拷贝一份。将数组作为参数传递给函数,实际 传递的是一份数组的拷贝。
2021/03/10