本系列不按期更新,用於記錄日常開發過程當中出現的一些小問題數組



能夠理解slice是對array的一個視圖,底層仍是array因此會被修改閉包
if _, ok := maps["xxx"]; !ok {
....
}函數
注意使用rune數組來保證漢字的字節問題
func main() {
str := "test"
strArr := []rune(str)
strArr[0] = '我'
fmt.Println(string(strArr))
}對象

在外部調用的Add是操做外部的sync.WaitGroup,可是test方法內部的Done操做的是內部的sync.WaitGroup,二者的sync.WaitGroup是不一樣的。在這裏須要改成引用傳遞,而不要傳值拷貝。
blog
close已經關閉的channel
向已經關閉的channel發送消息
在一開始使用channel的時候很容易忽視這個問題,並且這個問題隱藏的很好,因此使用channel必定要注意,由於出現panic會致使程序直接崩潰開發
這個問題也很容易犯,可是由於遇到的人多,因此在這裏仍是提一下
string
應該寫爲

若是你不懂問題在哪,你趕忙敲代碼試試看it
type User struct {
name string
}test
func (user *User) print() {
fmt.Println("name: ", user.name)
}變量
func main() {
user := &User{
name: "小明",
}
m := make(map[string]User)
m["xiaoming"] = *user
m["xiaoming"].print()
}
這個會出現異常,由於map在獲取的時候是不肯定的,須要用一個變量去接一下