1. 包中的全局函数、变量、声明等首字母必须大写,否则即使编译通过,在其他文件中也无法使用该包中的全局函数、变量及声明。
2. String是只读Slice,如果要更新字符串中的字母,就要使用byte slice,并在需要时把它转为 string slice
3.简式变量声明只能在函数中使用,并且作用域有限。如以下:
if b==8 {
a:=9
} else {
a =10
}
就会报错 undefined: a
改为以下则无报错
a := 0
if b==8 {
a=9
} else {
a =10
}
4.等待goroutine运行结束的方法有两个:
(1)使用 chan :在等待处等待 chan的输出,在goroutine结束点向chan输入
(2)使用sync.WaitGroup:在开启goroutine前使用 sync.WaitGroup.Add(1),在等待处使用sync.WaitGroup.Wait(),在goroutine中结束点使用sync.WaitGroup.Done()