golang
我橘子超酸
这个作者很懒,什么都没留下…
展开
-
go 创建map的几种方式
三种方法:1.声明、2.map[keyType]valueType、3.make //1. 声明 var m1 map[string]string fmt.Printf("类型:%T, 长度:%d, 值:%#v, 地址:%p \n", m1, len(m1), m1, &m1) // 类型:map[string]string, 长度:0, 值:map[string]string(nil), 地址:0xc000006028 //2. 使用map[keyType]valueType va原创 2022-05-06 18:20:23 · 2266 阅读 · 0 评论 -
go 创建切片的几种方式
四种方式:1.声明、2.直接初始化、3.基于数组创建、4.使用make创建 //1 声明切片, 未进行初始化,为nil var s1 []int fmt.Printf("类型:%T, 长度:%d, 容量:%d, 值:%#v, 地址:%p \n", s1, len(s1), cap(s1), s1, &s1) // 类型:[]int, 长度:0, 容量:0, 值:[]int(nil), 地址:0xc000004078 //2 声明并初始化, 不为nil,但长度为0,容量为0, var原创 2022-05-06 17:49:48 · 1260 阅读 · 0 评论 -
详解Go语言的内存模型及堆的分配管理
https://zhuanlan.zhihu.com/p/76802887http://goog-perftools.sourceforge.net/doc/tcmalloc.html前言这篇文章主要介绍Go内存分配和Go内存管理,会轻微涉及内存申请和释放,以及Go垃圾回收。从非常宏观的角度看,Go的内存管理就是下图这个样子,我们今天主要关注其中标红的部分。Go这门语言抛弃了C/C++中的开发者管理内存的方式,实现了主动申请与主动释放管理,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发原创 2022-04-22 22:31:39 · 1235 阅读 · 2 评论