Go语言技术文章
-
Go 1.21 引入的 slices.IndexFunc 可以按自定义谓词查找切片中首个有效值。本文从手写循环迁移到标准库 API,说明谓词设计、首个命中、空切片和 -1 结果的判断边界。362 收藏 -
Go io.SectionReader 把底层 ReaderAt 限定为一个有边界的读取视图。本文说明如何结合 SeekStart、SeekCurrent、SeekEnd 在分片内定位,并比较顺序读取与 ReadAt 的适用场景。362 收藏 -
Go sync.OnceValue 的初始化函数只执行一次,但如果函数 panic,返回函数后续每次调用仍会以同一个值 panic。本文用最小示例解释这一语义,并给出 recover 与重试边界。362 收藏 -
fmt.Fscan 面向空白分隔的字段扫描,会跳过前导空白并把换行当作空格。本文说明它为什么不适合保留整行空格,并给出按字段或按行读取的选择方法。362 收藏 -
Go XML Strict=false 只适合来源明确、缺陷可解释的兼容导入。说明缺失结束标签与未知实体的处理,区分 Strict、Entity、AutoClose 的职责,并给出独立输入流的完整 Token 比较示例。362 收藏 -
bufio.Scanner 遇到超长行时,Scan 返回 false 不一定表示输入结束,也可能是 token 超过缓冲上限。本文说明如何读取 Err、在第一次 Scan 前配置 Scanner.Buffer,并按内存预算选择合理上限。362 收藏 -
Go 的 net/http.Client.CheckRedirect 返回 ErrUseLastResponse 时,不会继续请求 Location,而是返回最近响应且错误为 nil;本文说明如何读取并关闭响应体,以及它与普通重定向错误的区别。362 收藏 -
Go time.Ticker 在接收方处理较慢时会调整节奏或丢弃 tick。本文区分可跳过的状态刷新、必须补偿的周期任务和不能依赖 ticker 的可靠事件,给出带中文注释的 Go 实现与选择表。361 收藏 -
围绕 Go strconv.ParseFloat 讲清 bitSize 精度选择、ErrSyntax 与 ErrRange 判断、NumError 读取及 NaN 和 Inf 的业务边界。361 收藏 -
Go JetStream 的 Ack 发送确认但不等待服务端回复,DoubleAck 会等待回复。通过处理函数与两张结构图,说明确认返回值、超时状态、业务幂等及方法选择。361 收藏 -
go-vcard 的 Decoder 每次 Decode 只返回一张 Card。本文用文件流循环读取多张 vCard,说明 io.EOF 的结束判断、解析错误处理和字段读取边界。361 收藏 -
Go os.Lstat 升级后结果不同时,先固定输入与运行环境,再对照真实构建版本。通过原创只读探针、字段比较和环境矩阵,定位工具链、部署条件或应用展示层的差异。361 收藏 -
Go http.Cookie 不生效时,先区分响应头 Set-Cookie 与请求头 Cookie,再检查 CookieJar、Path、Domain、Secure、SameSite、写入时机和字段合法性。361 收藏 -
strconv.ParseInt 只有 base=0 时按 Go 整数字面量规则允许下划线。本文比较前缀推断、显式进制、ErrSyntax 与 ErrRange,帮助固定配置输入契约。361 收藏 -
Go Expr 的高频调用场景不必每次重新解析表达式。本文用 Compile 生成可复用程序,再用 Run 传入不同环境,说明编译时类型检查、运行时错误和缓存边界怎么处理。360 收藏