golang
已收录文章:29篇
-
Go语言通过net包实现UDP通信,服务端使用ListenUDP监听并接收数据,客户端通过DialUDP发送消息并接收响应,利用goroutine可支持并发处理,适用于高性能、低延迟场景。329 收藏
-
Go测试性能瓶颈常源于重复初始化,如数据库连接、配置加载等高开销操作在每个测试中重复执行。通过TestMain实现一次性全局初始化,共享只读资源,结合sync.Once实现懒加载,可显著提升效率。需避免共享可变状态导致测试污染,确保资源隔离或重置,防止副作用影响测试稳定性。同时应先分析性能瓶颈,针对性优化,兼顾测试的可读性、可维护性与执行速度。295 收藏
-
答案:工具使用os和filepath遍历目录,结合regexp实现正则重命名,通过flag解析参数,处理符号链接时跳过软链,命名冲突时添加递增后缀,撤销操作通过JSON记录映射并反向重命名。277 收藏
-
答案:Golang中通过令牌桶算法实现限速任务调度,可使用rate.Limiter或自定义TokenBucket控制并发。251 收藏
-
使用compress/gzip包可实现数据压缩与解压。1.压缩时用gzip.NewWriter写入数据,必须调用Close()确保完整性;2.解压时用gzip.NewReader读取压缩流,建议deferClose()释放资源;3.可结合bytes.Buffer或文件进行操作,适用于网络传输与文件存储场景。248 收藏
-
答案:Go语言通过结构体标签结合反射实现字段校验,如validate:"required"用于定义规则,反射读取标签并执行自定义逻辑,示例中Name不能为空、Age需≥18,输出相应错误提示。236 收藏