
golang
科比不来it
左手代码,右手篮球。酷爱编程,痴迷技术。关注我,不迷路
展开
-
go语言 中 new能初始化哪些类型?
对于切片、映射(maps)和通道(channels),你应该使用 make 函数来初始化,因为 new 只会返回指向 nil 切片、映射或通道的指针。make 函数不仅分配内存,还初始化这些类型,使其可以立即使用。在 Go 语言中,new 函数用于分配指定类型的零值,并返回指向该值的指针。当你想创建一个结构体、数组或其他值类型的指针时,new 是非常有用的。需要注意的是,new 返回的是指向零值的指针。对于复合类型如结构体或数组,零值是指向每个字段或元素的零值。原创 2024-07-13 14:04:06 · 385 阅读 · 0 评论 -
golang 如何防止内存逃逸
在Go语言中,内存逃逸是指在函数中分配的变量在函数结束后仍然被引用,从而导致变量的生命周期延长,被分配在堆上而不是栈上。使用值接收者而不是指针接收者: 在类型的方法中,如果不需要修改接收者的值,使用值接收者而不是指针接收者,可以避免创建指向结构体的指针,减少内存逃逸。使用 sync.Pool: 在一些场景下,使用 sync.Pool 可以减少内存逃逸,通过对象池来重用对象,减少频繁分配和释放内存的开销。避免返回局部变量的指针: 在函数中创建的局部变量,如果返回其指针,可能导致内存逃逸。原创 2024-02-20 20:56:56 · 664 阅读 · 0 评论 -
Go的异常处理
【代码】Go的异常处理。原创 2024-02-20 18:28:00 · 425 阅读 · 0 评论 -
金山wps golang面试题总结
简单自我介绍如果多个协程并发写map 会导致什么问题如何解决(sync.map,互斥锁,信号量)chan 什么时候会发生阻塞如果 chan 缓冲区满了是阻塞还是丢弃还是panicchan 什么时候会 panic描述一下 goroutine 的调度机制goroutine 什么时候会被回收是否可以无限创建 goroutine什么情况会出现 goroutine 泄漏如何定位 goroutine 泄漏切片的空间是如何分配的,如何扩容的平时写切片的时候需要注意哪些点mysql innodb原创 2023-10-11 17:18:36 · 540 阅读 · 0 评论 -
GitHub上本月最受欢迎的Go语言项目有哪些?
在GitHub上猎奇,除了看推荐之外,就是热榜了,能上热榜的项目,一般都不会太差(刷榜的除外)。这篇文章呢,主要是介绍下本月最受欢迎的Go语言项目,我们可以知道Go语言的趋势,研究这些项目,可以学到很多。https://github.com/gwuhaolin/livego 。这是一个使用Go语言写的直播服务器,支持HLS、RTMP、HTTP-FLV协议,编码常用的H264都支持。视频封装通过FLV和TS,使用也非常简单。https://github.com/photoprism/photop转载 2022-03-19 20:37:57 · 703 阅读 · 0 评论 -
Golang Slice与数组的区别
array 类型array是固定长度的数组,使用前必须确定数组长度golang array 特点:golang中的数组是值类型,也就是说,如果你将一个数组赋值给另外一个数组,那么,实际上就是整个数组拷贝了一份如果golang中的数组作为函数的参数,那么实际传递的参数是一份数组的拷贝,而不是数组的指针array的长度也是Type的一部分,这样就说明[10]int和[20]int是不一样的。slice类型slice是一个引用类型,是一个动态的指向数组切片的指针。slice是一个不定长的,总是指向原创 2021-07-05 15:33:46 · 429 阅读 · 0 评论 -
Go语言变量的声明(使用var关键字)
Go语言是静态类型语言,因此变量(variable)是有明确类型的。编译器会检查函数调用中,变量类型的正确性。在数学概念中,变量表示没有固定值且可改变的数。但从计算机系统实现角度来看,变量是一段或多段用来存储数据的内存。声明变量的一般形式是使用 var 关键字:var identifier type 。需要注意的是,Go语言和许多编程语言不同,它在声明变量时将变量的类型放在变量的名称之后。这...转载 2019-06-29 13:34:41 · 2965 阅读 · 1 评论