Golang踩坑总结
Golang踩坑总结-把slice传入函数
· ☕ 2 分钟 · ✍️ 卓
问题表现: 把slice传入函数并修改, 所做的append操作在函数外会丢失 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 func main()

Golang踩坑总结-使用下标获取字符串的字符
· ☕ 1 分钟 · ✍️ 卓
问题表现 使用下标获取字符串的字符时, 可能得到奇怪的字符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 func main() { s := "hello" fmt.Printf("%c\n", s[1]) s = "你好" fmt.Printf("%c\n", s[1]) } //

Golang踩坑总结-循环中使用Goroutine中捕获参数
· ☕ 1 分钟 · ✍️ 卓
问题表现 goroutine中捕获的循环变量, 都为循环最后的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 func main() { for i, v := range []string{"a", "b", "c", "d", "e"} { // goro

Golang踩坑总结-循环中使用闭包捕获参数
· ☕ 1 分钟 · ✍️ 卓
问题表现 闭包中捕获的循环变量, 都为循环最后的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 func main() { // 保存函数闭包 var s []func() for i, v := range []string{"a", "b", "c", "d", "e"} {

Golang踩坑总结-接口值是否等于nil
· ☕ 2 分钟 · ✍️ 卓
问题表现 具体类型的nil值, 赋值给接口值变量后, 被判定不为nil 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 func main() { // *bytes.Buffer, 零值为ni