
Golang
yunlongliang
不恋过往,不畏将来
展开
-
golang中slice扩容机制
golang中的slice属性中,包含容量和长度。长度即slice中的元素个数。容量为slice对应底层数组的长度。往往我们在使用切片时,有扩容的需求,那么,slice是底层扩容是如何的呢? 在源码/go/src/runtime/slice.go中我们可以看到:// growslice handles slice growth during append.// It is passed the slice element type, the old slice, and the desired ne原创 2021-04-22 08:53:51 · 1111 阅读 · 0 评论 -
golang分配make&new
golang有两个分配原语,内置函数nake和new。但他们做不同的事情,并适用不同的类型。New new是一个内存分配的内置函数,他不会初始化内存,只会将其清零。也就是说,new(T)会为T类型分配被置零的存储,并返回它的地址,即*T。在go的术语中,它返回一个新分配的类型为T,值为零的指针。Make 内建函数make(T, args)与new(T)的用途是不一样的。它用来创建slice,map,channel,并返回类型的初始化(不是置零)的值T(不是*T),区别的原因是,这三种类型在幕原创 2021-04-15 10:33:47 · 306 阅读 · 0 评论 -
golang 编译不同平台可执行文件
1、Mac下编译Linux, Windows平台的64位可执行程序:$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go2、Linux下编译Mac, Windows平台的64位可执行程序:$ CGO_EN...原创 2020-01-15 13:26:22 · 1390 阅读 · 0 评论 -
golang switch
1,在golang中,switch默认会包含break。num := 10switch num {case 1: fmt.Println("输入的是1")case 2: fmt.Println("输入的是2")case 3: fmt.Printf("输入的是%d\n", num)case 4: fmt.Println("输入的是4")default: fmt.Print...原创 2019-11-11 14:45:52 · 209 阅读 · 0 评论 -
golang 枚举 iota
1,iota 常量自动生成器2,每隔一行,自动加13,iota给常量赋值const ( a = iota b = iota c = iota)fmt.Println(a, b, c) // 0 1 24,iota遇到const,重置为0const d = iotafmt.Println(d) // 05,iota可以只写一个const ( a1 =...原创 2019-11-11 13:51:56 · 725 阅读 · 0 评论 -
golang中的slice
概念 Slice即切片,它和数组(array)很类似,可以用下标的方式进行访问。如果越界,就会产生 panic。但是它比数组更灵活,可以自动地进行扩容。1,slice源码// runtime/slice.gotype slice struct { array unsafe.Pointer // 元素指针 len int // 长度 cap i...原创 2019-07-05 10:03:12 · 314 阅读 · 0 评论 -
golang 指针
说明1,go语言中的指针不能进行偏移和运算2,一个指针变量,可以指向任何一个值的内存地址,它指向那个值的内存地址,在 32 位机器上占用 4 个字节,在 64 位机器上占用 8 个字节,并且与它所指向的值的大小无关。3,当一个指针被定义后没有分配到任何变量时,它的值为 nil。一个指针变量通常缩写为 ptr。4,在go语言中,&:取地址,*:根据地址取值。5,每个变量在...原创 2019-09-23 14:22:02 · 1058 阅读 · 0 评论 -
golang time常用方法
说明 在golang中,时间转换都会通过Time类型做一系列转换。主要包含,时间戳和时间字符串,时间字符串转换成另外的格式。总之所有的转换都是通过Time类型做中间转换。参考文档:https://golang.org/pkg/time/操作1,获取当前时间t1 := time.Now() // 返回的是时间Time类型fmt.Println(t1, refl...原创 2019-09-30 21:05:00 · 1412 阅读 · 0 评论