golang
已收录文章:256篇
-
围绕 Go 1.25 实验性 Green Tea GC,讲清 GOEXPERIMENT=greenteagc 的开启方式、适用负载、GC CPU/alloc/op/P99 观察指标、压测和灰度发布流程。128 收藏
-
在Go中实现RPC超时控制需使用context包设置截止时间,通过context.WithTimeout创建带超时的上下文,结合select监听调用结果或超时信号,适用于net/rpc、HTTP及gRPC场景,其中gRPC原生支持context超时,而HTTP客户端可设置Timeout字段统一控制,建议合理配置1~5秒超时并配合重试与熔断策略提升系统稳定性。127 收藏
-
Go中map的struct值不能直接修改字段,因m["k"]返回不可寻址的临时副本,底层扩容导致地址不固定,故编译期拒绝m["k"].field=x;正确方式是取出→修改→写回,或改用map[string]*Struct。127 收藏
-
在Golang开发中,要利用Delve进行高级调试,核心在于正确安装Delve调试器本身,并将其与你常用的集成开发环境(IDE)或文本编辑器(如VSCode)进行无缝集成。说白了,就是让你的开发工具知道怎么调用Delve来“暂停”你的程序,然后让你能一步步地查看变量、执行流程,甚至深入到协程内部。这不像简单的fmt.Println,它提供的是一个更全局、更细致的视角,尤其是在处理并发问题或者复杂的业务逻辑时,它的价值就凸显出来了。解决方案配置Golang开发环境以使用Delve进行高级调试,主要分几个步125 收藏
-
Go语言通过返回error接口显式处理错误,推荐使用iferr!=nil检查;支持用%w包装错误以保留链式信息;可自定义错误类型实现Error()方法;应使用errors.Is和errors.As进行安全的错误判断与类型提取。125 收藏
-
Go中exec.Command不支持shell管道语法,需显式调用sh:exec.Command("/bin/sh","-c","ls|grepmain");StdoutPipe()须在Start()前调用,且cmd1与cmd2均需Wait()并正确关闭管道。119 收藏