Go教程技术文章
-
Go http.NewRequestWithContext 把 context 绑定到出站 HTTP 请求,取消信号会覆盖连接、发送、响应头和响应体读取。本文说明 WithTimeout、错误处理、响应体关闭与测试请求的边界。272 收藏 -
Go maps.Equal 根据键集合与对应值比较两个 map。本文用配置对照示例说明顺序、nil 与空 map、键缺失与零值的区别,并介绍切片值应使用 EqualFunc、接口动态值与 NaN 的注意事项。378 收藏 -
Go errors.Is 适合判断被包装错误链中是否包含某个哨兵错误;需要提取原始具体类型和字段时,应改用 errors.As 或 errors.AsType。258 收藏 -
Go errors.Join 可以把多个非 nil 错误组合成一个错误,并通过错误树继续支持 errors.Is 和 errors.As。本文从批量处理场景说明 nil 过滤、匹配能力、输出格式与使用边界。496 收藏 -
Go strings.Cut 适合按第一次分隔符拆分字符串,并通过 found 区分未命中与合法空字段。本文用键值和协议片段说明三个返回值、重复分隔符、空输入以及与 Split、SplitN、CutLast 的选择边界。474 收藏 -
Go context.AfterFunc 会在 Context 取消后异步执行收尾函数,但 stop 返回 false 不等于收尾已经完成。本文用资源清理场景说明注册、正常结束、取消等待和并发边界,避免把 stop 当成同步等待函数。425 收藏 -
讲清 Go os.DirFS 的 fs.FS 包装方式、相对路径规则、符号链接边界,以及何时应选择 os.Root.FS。133 收藏 -
Go time.NewTimer 的关键不在于记住一段固定模板,而在于区分提前取消、已经触发和再次复用。本文用请求超时场景说明 Stop、Reset、C 的配合方式,并补充 Go 1.23 及以上与旧版本的差异。269 收藏 -
围绕 io/fs.ValidPath 说明 FS.Open 名称的相对路径规则、根路径语义、斜杠边界和自定义文件系统的入口检查方式。488 收藏 -
Go math/bits.ReverseBytes16 接收 uint16 并交换其中的两个字节,适合处理定长整数的字节顺序转换。本文说明它与 Reverse16 的区别,给出协议字段中的调用方式,并提醒不要把字节交换和 encoding/binary 的整体序列化混在一起。306 收藏 -
围绕 Go strconv.ParseFloat 讲清 bitSize 精度选择、ErrSyntax 与 ErrRange 判断、NumError 读取及 NaN 和 Inf 的业务边界。361 收藏 -
Go strconv.ParseInt 通过 base 指定进制、通过 bitSize 约束目标宽度,并返回 int64 与 error。本文说明固定进制和 base=0 自动识别的差异,拆解符号、前缀、非法数字、位宽溢出和 NumError 的处理边界。104 收藏 -
Go strconv.QuoteToGraphic 返回双引号 Go 字符串字面量,保留 Unicode 图形字符并把制表符、换行等非图形字符转成 Go 转义。本文说明输入边界、与 QuoteToASCII 的区别,以及日志和配置展示中的选型方法。242 收藏 -
Go 的 len(string) 统计的是 UTF-8 字节数,不等于中文字符数量。本文用 utf8.RuneCountInString 统计 rune 数量,并说明非法编码、emoji 组合序列和显示字符之间的边界。115 收藏 -
Go unicode.ToLower 接收单个 rune 并按 Unicode 大小写映射返回 rune。本文说明它对非字母字符的行为、range 遍历字符串的正确写法,以及如何用 []rune 或 strings.Builder 组装转换结果。218 收藏