golang专题下共有 1154 篇文章
-
- Golang切片与数组区别及扩容详解
- 数组是固定长度的数据结构,而切片是对数组的封装,提供动态扩容能力。具体来说,数组声明时需指定长度,存储连续内存空间,而切片包含指向底层数组的指针、长度和容量,实现灵活操作;1.切片扩容策略为:容量小于1024翻倍,大于等于1024增加25%;2.扩容会引发内存分配和拷贝,影响性能,建议预分配容量;3.多个切片可能共享底层数组,修改一个会影响其他切片,需用copy避免副作用;4.使用建议包括优先使用切片、预分配容量、注意截取后的共享问题、减少频繁扩容,并理解数组与切片赋值行为差异。
- Golang· Go教程 | 1个月 | golang 底层实现 数组 切片 扩容机制 353浏览 收藏
-
- Golang高并发调试:pprof分析goroutine阻塞技巧
- 使用pprof调试Golang高并发程序中goroutine阻塞问题的方法包括:1.引入net/http/pprof包并启动HTTP服务;2.通过gotoolpprof命令访问/debug/pprof/goroutine接口获取数据;3.在pprof交互界面使用top、web和list命令分析调用栈,定位阻塞源,如channel操作;4.查看火焰图中gopark或chanrecv等函数识别长时间等待的goroutine。优化措施包括设置超时、使用带缓冲的channel、避免死锁、使用context取消任务
- Golang· Go教程 | 1个月 | golang Goroutine 高并发 阻塞 pprof 410浏览 收藏
-
- Golang反射操作slice和map技巧分享
- 要使用Golang反射处理slice和map,需掌握类型判断、动态创建与修改。1.判断类型:用reflect.TypeOf().Kind()判断是否为Slice或Map;2.创建slice:通过SliceOf定义类型,MakeSlice初始化,Append添加元素;3.操作map:用MapOf构造类型,MakeMap创建,SetMapIndex赋值,MapIndex读取;4.处理嵌套结构:组合上述方法操作复杂类型如map[string][]int。理解Value与Type关系是关键。
- Golang· Go教程 | 1个月 | golang 反射 map Slice 动态操作 418浏览 收藏
-
- Golang错误堆栈跟踪与pkg/errors使用详解
- pkg/errors是一个流行的Go错误处理库,用于增强错误的可追溯性。它通过errors.New()和errors.Errorf()创建带堆栈信息的错误,并支持使用errors.Wrap()包装已有错误以附加上下文。打印完整堆栈需使用fmt.Printf("%+v",err),提取原始错误可用errors.Cause()或结合errors.As()进行类型判断。此外,它兼容Go1.13的Unwrap方法,支持标准库的errors.Is()和errors.As()进行错误断言和提取,便于构建复杂错误处理逻
- Golang· Go教程 | 1个月 | golang 错误处理 pkg/errors 错误堆栈跟踪 errors.Wrap 377浏览 收藏
-
- Golang实时监控文件,inotify与kqueue对比解析
- 在Golang中实现文件内容实时监控的核心方法是利用操作系统提供的事件通知机制,如Linux的inotify和BSD/macOS的kqueue。1.根据平台选择合适的事件机制;2.使用第三方库(如github.com/fsnotify/fsnotify)简化跨平台实现;3.在事件循环中处理如fsnotify.Write等事件并读取文件内容;4.注意并发控制、错误处理及性能优化;5.对于大规模文件监控,应限制范围、使用批量操作、多线程/协程及调整内核参数以提升性能。该方法相比轮询更高效,能显著降低CPU资源
- Golang· Go教程 | 1个月 | golang 文件监控 fsnotify inotify kqueue 307浏览 收藏
查看更多
课程推荐
-
- Golang深入理解GPM模型
- Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
- 474次学习
-
- Go语言课程Gin框架实战
- Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
- 338次学习
-
- Golang云原生架构师课程
- Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
- 204次学习
-
- Go编程基础视频教程
- Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
- 167次学习
-
- Golang进阶实战编程
- 本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
- 128次学习