golang
已收录文章:14153篇
-
在Golang中进行大文件传输时,推荐使用gzip或zlib压缩以提升效率。1.gzip适合HTTP协议传输并附带元信息;2.zlib更轻量,适用于自定义协议;3.压缩流程包括打开文件、创建压缩器、写入数据并发送;4.注意设置传输头信息并调用Close()确保数据完整写出;5.压缩级别可在0~9间调整,权衡压缩比与CPU消耗。实际应用中应根据场景选择合适算法,并确保接收端正确解压。110 收藏
-
使用govulncheck等工具精准识别实际调用的已知漏洞;2.集成Snyk、Trivy等第三方扫描器增强检测能力;3.将安全扫描前置到CI/CD流程,通过PR拦截、自动报告与任务创建实现漏洞管控;4.结合人工审查,评估依赖行为、维护状态与最小化引入,提升整体供应链安全性。110 收藏
-
Go语言中函数参数可选值类型或指针类型,影响性能、内存使用及数据修改能力。2.值类型传递副本,不修改原数据,适用于小数据;指针类型传递地址,可修改原数据,适用于大数据或需修改场景。3.小型类型建议值传递,大结构体建议指针传递以减少开销,若需修改原始数据则必须用指针。4.方法集应统一接收器类型以保持一致性。正确选择参数类型可提升效率与安全性。110 收藏
-
Go语言中类型转换需显式进行,不可隐式转换。1.数值类型通过T(v)语法转换,小范围转大范围安全,大范围转小范围可能溢出;整型与浮点互转时截断小数部分。2.字符串与数值转换依赖strconv包,Atoi、ParseInt等用于字符串转数字并处理错误,Itoa、FormatFloat等用于数字转字符串,也可用fmt.Sprintf实现通用转换但性能较低。3.接口类型转换使用类型断言,推荐安全形式value,ok:=i.(Type)以避免panic,是实现多态的关键。掌握这三类转换可覆盖多数开发场景。110 收藏
-
本文是 《用 Golang 实现一个 Redis》系列文章第二篇,本文将分别介绍Redis 通信协议 以及 协议解析器 的实现,若您对协议有所了解可以直接阅读协议解析器部分。 Redis 通信协议 Redis 自 2.0 版本109 收藏
-
一般情况下,在 golang 中执行一些命令如 git clone,则可以使用 exec.Command 函数 func RunCommand(path, name string, arg ...string) (msg string, err error) { cmd := exec.Command(name, arg...) cmd.Dir = path err = cmd.Run()109 收藏