Go语言技术文章
-
围绕 ResponseWriter 包装导致的 http.Flusher 断言失败,说明安全断言、Unwrap 透传和 ResponseController 兜底的兼容写法。103 收藏 -
Go TLS 出现 unknown authority 时,按服务端证书链、系统根证书池、私有 CA、自定义 RootCAs 和容器证书包逐项排查,避免用 InsecureSkipVerify 绕过校验。103 收藏 -
Go net/http.NewFileTransportFS 可以把 fs.FS 接成 HTTP 客户端的 RoundTripper,常用于通过 file 协议读取本地目录或嵌入文件系统。本文说明 RegisterProtocol、路径映射、io.Seeker、响应体关闭和混合 Transport 的使用边界。103 收藏 -
Go maps.Clone 可以复制一个新的 map 容器,修改标量值不会影响原 map,但它是浅复制,切片和指针等值内部仍可能共享。本文用故障复盘方式说明复制、验证和边界处理。103 收藏 -
Go x/text/encoding/korean 的 Decoder 复用前为什么要 Reset?关键在于把 Reset 当作转换器生命周期边界,而不是把它误解成每次都能修复错误编码。当前 EUC-KR 解码器是无持久状态实现,但生产代码仍要隔离复用、Reader 生命周期和并发所有权。103 收藏 -
Go strings.CutPrefix 返回 after 和 found 两个结果:前缀匹配时移除一个前缀,未匹配时保留原字符串并返回 false。本文用代码、表格和边界清单说明如何正确处理。103 收藏 -
Go Starlark 的 starlark.List 不能直接作为字典键,因为它的 Hash 方法明确返回不可哈希错误。本文从 SetKey 的错误现场出发,说明列表、元组、稳定字符串和业务 ID 的选型边界。103 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · csv · Go教程 · csv Go error FLUSH CRLF encoding/csv Writer.UseCRLF Windows换行
Go encoding/csv 的 Writer 默认使用 LF 换行;需要兼容依赖 CRLF 的 Windows 工具时,应在第一次 Write 前设置 UseCRLF=true,并在写入后正确调用 Flush 和 Error。本文按接口契约说明设置时机、错误边界和跨平台取舍。103 收藏 -
Golang · Go问答 | 2星期前 | 反射 · unsafe · 指针 · 垃圾回收 · Go问答 · Go 反射 垃圾回收 unsafe.Pointer uintptr runtime.KeepAlive Value.Pointer UnsafeAddr
Go 反射得到的 Pointer 或 UnsafeAddr 结果是 uintptr,不能像引用一样保活对象。本文区分立即转换、uintptr 暂存、runtime.KeepAlive 和低层调用参数四种场景,给出排查清单与安全边界。103 收藏 -
context.WithCancelCause 让调用方既能判断上下文已经取消,又能读取导致取消的具体错误。本文用一个可复用的 worker 示例说明 cancel、Cause、父子上下文和 nil cause 的边界。103 收藏 -
本文用一个小项目说明 Go html/template 如何让用户输入按 HTML 上下文自动转义,并把模板解析放到初始化阶段、在批处理循环中复用模板与 bytes.Buffer,减少无意义的重复分配。103 收藏 -
Go fmt.Formatter 要通过 Format 方法把内容写入 fmt.State;只实现方法签名还不够。本文用自定义指标类型说明动词分派、宽度精度、值与指针接收者、别名类型防递归,以及输出为空或不符合预期时的排查顺序。103 收藏 -
Go 的 constant.Real 和 Imag 分别读取复数 Value 的实部与虚部,返回结果仍是 constant.Value。本文说明 MakeImag 与 BinaryOp 的组装方式、Unknown 传播,以及 Float64Val 转换时如何判断精度损失。103 收藏 -
Go 读取 GIF 动画时应使用 image/gif.DecodeAll,遍历返回的 Image 与 Delay 数组;Delay 的单位是百分之一秒,LoopCount 还要单独解释。本文给出尺寸预读、文件复位、延迟换算和内存边界。103 收藏 -
Go HTTP2Config.SendPingTimeout 用于设置连接无帧空闲后的 PING 健康检查,PingTimeout 用于设置等待 PING 响应的时间。本文说明两个字段的零值、时间关系,以及如何分别挂到 http.Server 和 http.Transport。103 收藏