Go语言技术文章
-
用 Go io.LimitReader 给请求体和文件读取设置明确上限,区分正常 EOF 与超限,并完成响应体保护。167 收藏 -
Go 的 sync.Map.Clear 可以一次清空映射中的全部条目,但它只适合明确的批量失效场景。通过并发读写示例、基线测量和结果核对,说明 Clear 的可见性、成本与替代方案。498 收藏 -
用 Go io.SectionReader 把大文件的一段变成受限 Reader,弄清 NewSectionReader 的偏移、EOF 边界、Seek 行为与并发复用条件。480 收藏 -
time.After 适合一次性等待,但把它放进长循环后,定时器生命周期和退出路径就需要重新审视。本文用可运行的 Go 代码拆开一次性等待、可停止计时器与循环复用的边界。112 收藏 -
用 Redis 8.0 的 HGETEX 读取 Hash 字段并单独设置 TTL,拆解 FIELDS、EX 与 PERSIST 的参数边界,再用 HEXPIRETIME 和 HGET 验收结果。481 收藏 -
Go regexp.FindStringSubmatch 返回 nil 只表示整体没有匹配;匹配成功但捕获组为空时,切片仍然存在。本文用最小示例区分 nil、空字符串和可选分组,并给出稳定判断写法。290 收藏 -
io.ReadAll 写起来很短,但它会把输入完整收集到一个字节切片中。本文从大响应和未知长度输入的现场出发,解释 len/cap 增长、峰值内存与分块读取的边界,给出可复查的 Go 代码。231 收藏 -
从配置文件落盘权限不符合预期的现场出发,拆解 Go os.WriteFile 的 perm、Unix umask、首次创建与覆盖已有文件的差异,并给出可复现的检查和修正边界。364 收藏 -
用一组月光纸艺鲸鱼手机壁纸提示词,讲清竖屏构图、主体下移、顶部锁屏留白,以及如何制作一张明显不同的海雾变体。198 收藏 -
Go 用 strconv.AppendInt 把整数追加到 []byte 时,关键不是记住一个性能结论,而是看清切片长度、容量和底层数组何时变化。本文用可运行代码说明复用缓冲区的边界,并处理别名切片带来的覆盖问题。287 收藏 -
time.After 放进长循环后,真正需要区分的是 Go 版本的回收语义、是否要提前取消,以及是否能复用计时器。本文用可运行示例拆开三种情况,给出 Stop、Reset 和上下文取消的安全边界。342 收藏 -
bytes.Buffer.Bytes 返回的是仍由缓冲区管理的切片视图,不是独立副本。本文通过复用、写入和复制三个场景,说明如何判断别名风险,以及什么时候该用 bytes.Clone 或 append(nil, b.Bytes()...) 保留稳定数据。368 收藏 -
前端表单用 blur 做逐字段校验时容易出现提示抖动。用 focusout 事件委托、relatedTarget 判断焦点是否仍在字段组内,再配合 requestId 丢弃过期结果,可以让校验状态稳定下来。356 收藏 -
Go 的一次性值闭包适合把昂贵初始化延迟到第一次真正使用时,并保证并发调用只执行一次。本文用标准库代码说明闭包状态、panic 记忆和失败返回值的边界。113 收藏 -
文章 · linux | 1星期前 | Linux · 日志排查 · journalctl · 服务管理器 · 故障定位 · Linux 时区 journalctl --since --until 日志时间窗口
排查 Linux 服务故障时,journalctl 的时间范围很容易因为日期省略、边界含义和时区显示产生误判。本文用一段可复查的故障窗口说明 --since、--until、short-full 和服务过滤的配合方式。134 收藏