![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
lynalmost
这个作者很懒,什么都没留下…
展开
-
关于Golang make关键字的二三事
关于Golang make关键字的二三事 make的介绍 make的作用是初始化内置的数据结构,切片、哈希、管道 它的使用方式无非是 //初始化切片 s := make([]string, 0, 10) //初始化map(map必须初始化后使用) m := make(map[string]string, 10) make的原理 make严格意义上来说是golang提供给开发者的语法糖,在编译期间,make会被替换为具体的特性函数。 case OMAKE: ar原创 2021-04-20 20:36:05 · 1017 阅读 · 1 评论 -
关于Golang数组的要点
关于Golang数组的要点 文章目录关于Golang数组的要点初始化要点数组的访问要点总结 初始化 a := [3]int{1,2,3} b := [...]int{1,2,3} 要点 数组在内存中为一片连续空间。 数组一旦创建,长度不可变。 使用...的方式创建数组,在编译阶段会进行推导,即遍历一次数组,会提前转换为a的形式;运行时没有差别。 在编译阶段,当数组长度小于4,则直接在栈中初始化;数组长度大于4,在静态区初始化后,运行时拷贝到栈中。(原因猜测:栈中初始化速度慢) 数组的访原创 2021-04-12 14:59:30 · 320 阅读 · 0 评论 -
Golang map 并发读写问题源码分析
map介绍及问题描述 map主要用来存储kv数据,其底层使用的是开链法去冲突的hashtable,拥有自动扩容机制。使用map最方便的一点是可以O(1)快速查询(目前slice并没有提供查询接口,只能通过自己写算法实现某个元素是否存在)。 map虽然好用,但是可能不适用。 但是map有一个非常致命的坑点,在并发场景下,并发读/写都可能会出现fatal error:concurrent map read and map write的错误,刚开始使用map的时候天真的认为只要不对同一个key进行并发操作就行,但原创 2020-08-18 09:10:13 · 2810 阅读 · 0 评论 -
Golang Slice
Slice介绍 Slice也叫做切片,是golang中最为常用的一个结构之一,跟数组相比,它更加灵活便利,拥有自动扩容策略,但是也存在着一些比较容易被忽略的坑点,文章会先介绍Slice的基本使用方式,接着会介绍Slice的内部实现,最后会总结一些我遇到过的坑点(这一点可能会持续更新)~ 使用方式 Slice切片初始化 slice的初始化和数组的初始化方式特别相似,但是这是两种完全不同的数据结构,数组的容量大小是不允许被调整的。 //slice的初始化 s2 := []int{} s3 := []int{1,原创 2020-07-09 11:54:53 · 224 阅读 · 0 评论