Go基础备忘
变量
变量可以定义在package level
var (
username string = "zhangsan"
age int = 18
)
这种定义方式让代码更简洁。如果变量在package level,同时变量名大写,那就全局可见。
go中有复数类型complex64以及complex128,比如:
package main
import "fmt"
func main() {
var n complex64 = 1 + 2i
fmt.Printf("%v, %v\n", real(n), imag(n))
}
rune类型:是int32的别名
iota: iota不是什么类型,它是常量计数器, 每次const出现时,都会让iota初始化为0.
const a = iota // a=0
const (
b = iota //b=0
c //c=1 相当于c=iota
)
数组与slice
他们形式上很像,只是数组要明确定义大小
arr := [...]int{1,2,3}
s := []int{1,2,3,4,5}
spread运算符
类似javascript里面的spread,可以展开数组
s := make([]int, 5) // 另一种创建slice方式
s = append(s, []int{1,2,3}...)
并发
waitGroup等待线程结束,类似Java里面的Latch和栅栏