- 博客(5)
- 收藏
- 关注
原创 Go语言中的常见的几个坑
Go语言中的常见的几个坑文章目录Go语言中的常见的几个坑1、for range2、defer与闭包3、map内存溢出4、协程泄漏5、http手动关闭记录一下日常中遇到的几个坑,加深一下印象。1、for range这个是比较常见的问题了,我自己也整理一下:func main() { l := []int{1,2,3} fmt.Printf("%p \n", &l) for _, v := range l { fmt.Printf("%p : %d \n", &v,v) }
2020-10-12 19:05:56
1098
1
原创 map的自动扩容与手动缩容
map的自动扩容与手动缩容首先还是提出问题:扩容和缩容有什么用?为什么需要扩容和缩容?在想解答这个问题之前,首先还是需要了解一下go语言中的mapgo语言中的map与Java中的map实现还是有些不同,go的map底层实现方式是hash表(哈希桶+数组),Java中,JDK1.6,JDK1.7里HashMap采用位桶+链表实现,JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树。先看map的数据结构吧:const ( bucketCntB
2020-09-29 22:03:52
2045
原创 go语言中的for循环
go语言中的for循环假如给你一个字符串让你遍历获取其中的内容,或者查找其中的是否包含某个字符串,你会如何做?理所当然的我们选择了for循环来进行遍历在go语言中使用比较多的两个循环一个是for i,一个是for range,这两者都能够很有效的对一个集合体进行遍历。(string也是一个集合体),下面我们来具体展示一下他们之间的区别for ifunc main() { str := "Hello, 世界" for i := 0; i < len(str); i++ { ch :=
2020-09-28 21:17:41
3977
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人