Go教程技术文章
-
Go bufio.Reader.ReadLine 返回 isPrefix 并不表示读取失败,而是说明当前 line 只是长行的一段。本文用原创 Go 示例说明如何拼接片段、处理 EOF 与 CRLF,并封装单行读取接口。411 收藏 -
bufio.Reader.UnreadRune 不是任意读取后的通用回退按钮,它只接受紧邻 ReadRune 的一次回退。本文从源码状态、ErrInvalidUnreadRune 触发条件和 UTF-8 解析示例说明严格配对规则。411 收藏 -
Go 中不要用文件后缀猜测打开对象的类型。本文用 os.File.Stat 获取 FileInfo,再通过 Mode 的 IsDir 和 IsRegular 判断目录、普通文件及其它类型,同时处理 Stat 错误和文件句柄关闭。411 收藏 -
Go strings.CutSuffix 用一个调用同时返回去掉固定后缀后的字符串和 found 状态,适合拆分文件扩展名。本文说明匹配、未匹配、空后缀和 Go 版本边界。410 收藏 -
Go expvar 可通过JSON接口暴露进程变量。本文从一个小服务出发,讲解指标语义、一次注册、显式路由、本机监听及采集结果的解释。409 收藏 -
Go stringsseq 适合把只遍历一次的 strings.Split 或 strings.Fields 迁移为 SplitSeq、FieldsSeq,减少临时切片分配。本文说明适用边界、go fix 预览方法、版本要求以及索引、重复遍历和语义回归检查。406 收藏 -
io/fs 使用统一斜杠路径,而本地文件系统使用操作系统分隔符。本文用 filepath.Localize 完成转换,说明 ValidPath 前置条件、Windows 兼容错误与文件操作边界。405 收藏 -
Go bytes.CutPrefix 用 after 和 found 同时表达去掉固定前缀后的切片与是否命中。本文说明未命中、空前缀、底层数组共享及旧版本兼容边界。405 收藏 -
Go runtime/metrics 的直方图判断应看 Description.Kind,而不是猜测指标名称。本文说明如何从 All 建立描述符索引,安全读取 KindFloat64Histogram,并正确理解 Buckets 与 Counts 的关系。404 收藏 -
Go x/text/encoding/charmap 的 EncodeRune 接收一个 rune,返回目标单字节编码中的 byte 和一个 bool。本文说明如何用 ok 判断字符能否编码,如何定位整段文本中的不可表示字符,以及何时改用 NewEncoder 或 UTF-8。404 收藏 -
用Go ConstantTimeCompare比较固定长度密钥材料,说明整数返回值、长度提前返回、差异位置样本和性能观察的适用边界。403 收藏 -
用 go tool pprof 的 sample_index 切换内存 profile 的采样值,分清 inuse_space、inuse_objects、alloc_space 与 alloc_objects,并说明交互命令、命令行参数和索引边界。403 收藏 -
Go slog 通过 HandlerOptions 的 AddSource 把日志调用位置加入 TextHandler 或 JSONHandler 输出,本文说明 source 的生成、包装影响与生产取舍。402 收藏 -
Golang · Go教程 | 2天前 | 反射 · reflect · 标准库 · Go教程 · Go 反射 MapIter MapRange reflect.Value.SetIterValue map迭代
Go 反射遍历 map 时,可以用 reflect.Value.SetIterValue 把 MapIter 当前条目的值写入一个可写 Value。本文从目标 Value 的创建、MapRange 遍历到可赋值与 CanSet 边界,给出完整示例和选择建议。402 收藏 -
Go 读取 ShiftJIS 日文 CSV,可先用 x/text 解码为 UTF-8,再交给 csv.Reader 逐条解析。本文给出文件导入函数,说明列数、替换字符和错误处理边界。401 收藏