Go语言技术文章
-
Go 标准库 encoding/ascii85 可以把 ASCII85 文本还原为字节数据。本文从包装标记、Decode 返回值、NewDecoder 流式读取和异常输入四个方面说明怎样安全完成解码。225 收藏 -
Go strings.FieldsSeq 返回按 Unicode 空白分隔的字符串迭代器。本文用最小示例说明怎样逐个读取字段、提前停止和处理空输入,并解释它与 strings.Fields 的版本与内存边界。486 收藏 -
Go strings.Fields 会把连续的 Unicode 空白视为一个分隔边界,丢弃首尾空白并返回非空字段。本文用原创示例说明空输入、制表符、换行和 strings.Split 的选择边界。249 收藏 -
Go testing.T.SkipNow 结束的是当前测试函数的后续语句,不会跳过已经登记的 t.Cleanup。本文拆解 SkipNow、runtime.Goexit、子测试和后台 goroutine 的生命周期边界,给出资源登记与跳过用例复查清单。191 收藏 -
解释 Go runtime/debug.SetMaxStack 的单 goroutine 栈上限、旧值返回、只限制未来增长的语义,并区分堆内存、GC 和线程数治理边界。420 收藏 -
Go time.Time.Truncate 按绝对时间取整,半小时偏移的时区可能仍显示本地 :30。本文用最小示例区分固定时长边界与本地日历边界,并给出保留 Location 的 time.Date 重建方案。215 收藏 -
Go 反射删除 map 元素时,SetMapIndex 的 elem 要传 reflect.Value{};本文说明零 Value、类型可赋值和 nil map 的边界。396 收藏 -
从 sync.Pool.Put 的 nil 快速返回讲清未类型化 nil、typed nil 与 Pool.New 的边界,给出可复用临时对象时的类型断言、状态清理和安全兜底写法。189 收藏 -
Go WebSocket 升级前写响应体,通常会先提交普通 HTTP 状态,后续就无法再完成 101 Switching Protocols。本文按请求检查、http.Hijacker 接管、101 握手和帧通信的生命周期拆开说明,并给出正确的写入顺序。197 收藏 -
Go 用较短内容覆盖旧文件时不会自动删除尾部字节,使用 os.File.Truncate 按新长度截断,并注意文件偏移、写权限和并发边界。314 收藏 -
Go html/template 解析多个文件或 define 命名模板后,可以用 Templates 遍历关联模板并读取 Name,再用 Lookup 检查某个名称是否存在。本文给出最小示例,并说明 ParseFiles 根名称、命名模板和 ExecuteTemplate 参数不一致时的排查顺序。122 收藏 -
用 Go netip.ParseAddr 解析带接口作用域的 IPv6 地址,读取 Addr.Zone,并掌握 WithZone、As16 与 Prefix.Contains 的边界。363 收藏 -
讲清 Go http.Request.WriteProxy 与 Request.Write 的格式差异,演示如何生成带绝对 URI 的代理请求,并说明 URL、Host、writer 和代理连接之间的职责边界。184 收藏 -
Go crypto/ecdh PrivateKey.Bytes 返回的是原始私钥编码副本,不是 PEM 或 PKCS#8 容器。本文用同曲线回读示例说明导出、校验、存储和敏感字节生命周期的边界。151 收藏 -
Golang · Go教程 | 5天前 | 标准库 · 性能优化 · url · Go教程 · Go net/url []byte URL.String URL.AppendBinary URL.MarshalBinary
Go net/url 的 URL.AppendBinary 可以把 URL 文本追加到已有 []byte,并把返回切片交给后续协议或日志写入。本文说明正确接住返回值、处理错误、复制长期数据,以及它和 URL.String、MarshalBinary 的选择边界。388 收藏