golang
已收录文章:105篇
-
Go语言用error接口替代try-catch,强调显式错误处理。1.函数返回error值,调用者必须检查;2.error是含Error()string的简单接口,可自定义扩展;3.错误作普通值传递,提升性能、控制力和可测性。160 收藏
-
panic是Go中表示程序无法继续执行的机制,可由运行时错误自动触发或手动调用panic()引发;2.常见自动触发场景包括空指针解引用、数组或切片越界、整数除以零及向已关闭channel发送数据。154 收藏
-
首先安装MySQL驱动,然后使用database/sql包连接数据库并执行查询。通过sql.Open()建立连接,db.Ping()测试连通性,QueryRow()查询单行,Query()查询多行并遍历结果,Exec()执行插入等操作,最后用Scan()读取数据并处理错误。完整示例展示了查询用户列表并存入切片输出。153 收藏
-
使用os.OpenFile可灵活实现文件写入与追加,结合O_TRUNC覆盖或O_APPEND追加;ioutil.WriteFile(或os.WriteFile)适合一次性写入;bufio.Writer提升频繁写入性能。151 收藏
-
合理控制并发、复用连接、优化缓冲和设置超时是提升Go程序I/O性能的关键:1.使用带缓冲channel限制goroutine数量,避免资源耗尽;2.自定义http.Transport参数以复用TCP连接,减少握手开销;3.利用bufio.Writer批量写入,降低系统调用频率;4.通过context.WithTimeout防止请求无限阻塞。结合sync.WaitGroup与错误处理可确保程序稳定高效。151 收藏
-
使用OpenTelemetry实现GolangRPC调用链监控,需集成SDK并配置gRPC拦截器,在客户端和服务端自动注入追踪逻辑,通过metadata传递TraceID与SpanID,确保上下文透传;结合OTLPExporter将数据发送至Jaeger等后端系统,实现调用链可视化,并可通过自定义事件与标签增强排查能力。147 收藏