Go语言技术文章
-
Go 处理土耳其语大写时,不要把语言规则简化为 ASCII 替换。使用 x/text/cases 的 Upper(language.Turkish),即可按土耳其语处理点号 I 和无点 I;本文同时说明 String、Bytes、流式转换和 Caser 并发边界。374 收藏 -
x/text/message 的 Sprintf 不是简单改名版 fmt.Sprintf:Printer 会按语言标签处理数字格式,格式串还可能作为翻译键。本文用最小 Go 示例说明差异、# 标志、Key 和回退边界。374 收藏 -
Go 使用 x/text/encoding/korean 解码 EUC-KR 分块数据时,Transform 返回的 nSrc 与 ErrShortSrc 决定了哪些字节必须带到下一块。本文结合 Decoder.Reader 和手动分块处理说明如何避免字符被截断。374 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · 模块管理 · Go 离线构建 go.work go mod vendor vendor/modules.txt go work vendor Go工作区
Go work vendor 适合为 go.work 定义的多模块工作区生成共享 vendor 依赖目录。本文说明工作区边界确认、vendor 生成、离线构建入口以及 go.work、go.mod 与 vendor/modules.txt 的一致性排查,并区分 go work vendor 与 go mod vendor 的适用场景。374 收藏 -
Go 的 CertPool.Subjects 返回证书池中证书主题的 DER 编码,不是完整证书,也不等于系统根证书总数。本文用分层检查方法解释如何读取、解析和判断这些内容,并说明 SystemCertPool 的特殊边界。374 收藏 -
Go os.File.ReadAt 的 off 是文件字节偏移,负数不是可读取的位置。本文从错误现象、偏移计算、参数校验和 *os.PathError 判断四层排查,给出安全的 ReadAt 封装,并区分它与 Read、Seek 的位置语义。374 收藏 -
Go 的 encoding/csv 支持带引号的多行字段,报错时不能只按逻辑记录号猜位置。本文结合 Reader.Read、ParseError 和 FieldPos,说明如何拿到真实物理行号与字节列号,并处理中文字段、字段索引和日志记录边界。374 收藏 -
Go 在 Linux 子进程结束后,通过 Wait、ProcessState 和 Rusage 读取 CPU 时间与峰值 RSS。示例保留失败任务统计,区分墙钟耗时、实时内存和累计子进程口径。373 收藏 -
区分 Go ByteOrder 与 AppendByteOrder,展示定长整数追加、字节序选择和返回切片的正确用法,说明容量及共享数组的边界。373 收藏 -
Go 1.27 中 jsontext.Token 的 Int、Uint、Float 等数字访问器改为返回数值和 error。本文说明如何迁移调用、区分 ErrSyntax 与 ErrRange,并处理非数字 Token、截断、饱和值和 Token 生命周期。373 收藏 -
nil指针装入接口后仍带动态类型,因此接口与nil比较可能为false。本文沿指针创建、接口承载和error返回边界解释差异,给出成功显式返回nil的写法,并说明类型断言、方法调用和清空变量的边界。373 收藏 -
比较 Go 文件错误直接返回、文本转换、%w 包装与 errors.Join,给出保留写入和关闭错误的示例,并说明 errors.Is、errors.As 及资源清理的使用边界。373 收藏 -
time.Time.Year 返回公历年,而 ISOWeek 返回 ISO 8601 的周所属年与周号。本文用年初年末边界说明两者为何不同,并给出正确的周统计键和回归测试写法。373 收藏 -
Go Goldmark 默认不渲染 Markdown 中的原始 HTML,原因在 HTML renderer 的安全选项。本文说明 html.WithUnsafe 的职责、受信任模板的配置方式,以及不可信内容为什么不能直接开启。372 收藏 -
用 go.work 和 use 组织多个 Go 模块的本地联调,并通过 GOWORK=off 完成发布前的独立校验。372 收藏