Go语言技术文章
-
用组合字符昵称场景讲解Go uniseg字素簇遍历,通过Next、Str和Positions保留完整组合序列,并实现前缀截取,区分字节、rune、宽度与规范化。383 收藏 -
go-i18n 找不到目标语言的 MessageID 时,会先尝试 Bundle 的默认语言;如果仍没有消息,再使用 LocalizeConfig.DefaultMessage。本文梳理 Localize 的回退链、错误处理以及 MustLocalize 和复数 Other 的边界。368 收藏 -
Go 使用 go-i18n 做本地化时,可以把数量放进 LocalizeConfig.PluralCount,让 Localizer 按语言规则选择 One、Other 等复数模板;本文说明 Message、TemplateData 与迁移回归边界。208 收藏 -
Go jsonschema/v5 的 schema 没有 $schema 时,会使用 Compiler.Draft 指定的草案,未设置时默认采用当前支持的最新草案。本文用代码和迁移清单说明怎样固定 Draft7、Draft2020,避免项目升级后校验语义漂移。193 收藏 -
gojq.Iter 的 Next 返回 any 和 bool,error 也会作为一项被迭代出来。本文解释这种设计的原因,并给出普通错误、HaltError 与结束信号的处理写法。164 收藏 -
gojq 可在循环外解析并编译查询,循环内复用 Code,为每个 JSON 对象创建独立迭代器。本文给出完整 Go 示例,并说明多结果、运行错误及批处理集成的边界。440 收藏 -
Go go-flags 遇到未知参数时,可以用 IgnoreUnknown 将未知选项保留在 ParseArgs 的剩余切片中;如果需要生产环境的白名单边界,则使用 UnknownOptionHandler 自定义转发规则。252 收藏 -
Go Kong 同时设置 required 与 default 时,合法默认值也能满足必填。本文结合固定版本源码,说明显式输入、空字符串和业务校验的区别及改写方法。465 收藏 -
Go Kong 的命令树来自 Go 结构体和标签:普通字段是 flag,带 cmd 标签的嵌套结构体才是子命令。本文从嵌套字段未生效的症状出发,给出二级命令、参数归属和 Run 方法的最小写法。465 收藏 -
Go LDAP 的 Referrals 是引用地址,不是已读取的条目。本文比较限定单端点、报告未处理引用和受控追踪三种策略,并给出同时保留条目、引用与错误的查询函数。318 收藏 -
Go LDAP 的空密码不是普通登录失败的另一种写法。本文区分 Bind、UnauthenticatedBind 和 AllowEmptyPassword 的职责,给出认证意图封装与连接隔离示例,避免把未认证会话误当成用户身份。235 收藏 -
Go LDAP 中 EscapeFilter 面向 RFC4515 过滤器值,EscapeDN 面向 RFC4514 的 DN 属性值。本文用一个小查询项目说明两者的字符边界、组装方式与排错规则。136 收藏 -
filepath.Join 采用客户端目标系统的路径规则,不能自动代表 SFTP 远端命名空间。本文区分本地与远端路径,给出单文件名拼接示例,并说明 ToSlash、词法清理和服务端权限的边界。396 收藏 -
Go 的 github.com/pkg/sftp 同时提供 Rename 和 PosixRename,但两者对已存在目标文件的处理语义不同。本文用远程发布场景说明覆盖边界、扩展探测和安全选型。214 收藏 -
Go 的 github.com/pkg/sftp 中,File.Close 释放远程文件句柄,Client.Close 关闭 SFTP 会话;本文用资源层级、defer 和错误处理示例说明两者的区别与正确关闭顺序。473 收藏