golang进阶高级之路
文章平均质量分 86
从初级研发工程师到高级工程师必经之路
我是从宝畅
都别写代码了,去奔跑,去跳跃,去抓鱼,干啥都行
展开
-
golang中slice的剖析
第一个参数是指定切片的类型,第二个参数是指定存储多少个数据 len。第三个参数是指定空间cap (分配了多少个数据的内存,或者叫分配的内存最多可以存储多少个数据)当make完上面的代码后,系统会为这个a变量分配一个容纳2个int元素的连续内存,默认值是0,并且只有1个可以使用。因为make的第二个参数len的位置我们填写了1,所以只能使用a[0],如果直接使用a[1],就会越界直接报错。原创 2022-02-18 01:18:04 · 811 阅读 · 0 评论 -
golang中channel的实现原理
初级程序猿一步步进阶高级的博客-CSDN博客,这次我们来研究一下,channel的实现原理。 当make初始化chan类型的数据时,会调用makechan64()方法,在这个方法中会再调用makechan()方法,返回了一个hchan这个数据类型的地址。*注意,重点来了,chan类型的核心就是hchan这个结构体,后面我们会看hchan里有什么,以及它的核心逻辑是什么。原创 2022-02-16 01:03:20 · 505 阅读 · 1 评论 -
golang中map的实现原理
初始化一个map变量 m1 := make(map[string]interface{}) m2 := make(map[string]interface{}, 10)上面两个make,会调用对应的实现方法。当我们使用make来初始化一个map变量时,1、如果不指定数量,会执行makemap_small()并返回一个hmap的地址,2、如果指定数量,会调用makemap64()并返回一个hmap地址,func makemap64(t *maptype, hint int64, h *原创 2022-02-13 18:16:17 · 1224 阅读 · 0 评论