Go语言技术文章
-
用 sha256.New 配合 io.Copy 流式读取大文件,计算 SHA-256 摘要并处理字节数、读取错误与自定义缓冲区。168 收藏 -
Go module graph pruning 不是简单删除 go.mod 条目。本文从 go 1.17+ 的模块图规则出发,说明如何用 go mod graph、go mod why -m 和 go list -m all 定位仍被下载的依赖。168 收藏 -
给管理接口增加 IP 白名单时,字符串比较、IPv4 与 IPv6 混用、掩码边界都容易出错。本文使用 Go netip.ParsePrefix 和 Prefix.Contains 搭建可复用的 CIDR 白名单校验器,补齐配置检查、匹配顺序和失败回归用例。167 收藏 -
Go slog.WithGroup 可以把同一请求的字段放进稳定的 JSON 层级,但嵌套组、空组和同名字段处理不清楚时,日志检索仍会混乱。本文用一段可运行示例说明组名、字段覆盖、空组省略和 JSON 验收方法。167 收藏 -
用 Go io.LimitReader 给请求体和文件读取设置明确上限,区分正常 EOF 与超限,并完成响应体保护。167 收藏 -
文章 · python教程 | 2星期前 | 数据库 · python · 备份 · SQLite · Python sqlite3 Connection.serialize Connection.deserialize 内存快照
用 Python sqlite3.Connection.serialize 把内存数据库导出为 bytes,再用 deserialize 恢复到新连接;文章说明提交时机、main 数据库、SQLite 能力和快照边界。167 收藏 -
Python heapq.merge 可以把多个已经排好序的日志流合并成一个惰性迭代器。本文用时间戳日志说明 key、reverse、内存占用和乱序输入的真实边界。167 收藏 -
JDK 26 预览 API LazyConstant 可以替代常见的双重检查锁,但“最多初始化一次”不等于计算函数绝不重试。本文讲清线程安全、异常重试、空值、递归和长期引用边界。167 收藏 -
Go slog 的 WithAttrs 属性没有出现在文本输出时,先区分整条日志被级别过滤,还是字段被 ReplaceAttr 或自定义 Handler 丢弃。本文用标准 TextHandler、包装 Handler 和分组检查清单定位问题。167 收藏 -
Go 的 map 遍历顺序没有语言规范保证,不能直接把 range 结果写进固定断言。本文用独立 key 切片排序的方法生成稳定输出,并说明 nil map、遍历期间修改和生产代码边界。167 收藏 -
循环里写 defer f.Close() 时,Close 不会在本轮循环结束,而会等外围函数返回。本文解释原因,并给出单次迭代函数、关闭错误处理和资源边界选择。167 收藏 -
LiblibAI AI生图做方形、竖版和横版多尺寸配图时,需要分别计算画幅重构、候选生成、筛选修图、风格一致和交付复核成本,不能只按一张主图硬裁。167 收藏 -
使用 filepath.WalkDir 遍历目录时,权限错误不一定要让整棵目录树停止。本文说明如何区分目录与文件错误,正确使用 filepath.SkipDir,并保留非预期错误。167 收藏 -
systemd 的 Restart=always 只负责决定是否重启,RestartSec 和 StartLimit 参数决定重试节奏与上限。本文从退出码、journal、依赖关系和恢复步骤排查服务失败循环。167 收藏 -
数据库 · MySQL | 7小时前 | MySQL · 数据类型 · JSON · SQL排错 · MEMBER OF · MySQL MEMBER OF MySQL JSON 数组成员判断 MEMBER OF 类型不匹配 JSON 数字字符串区别 MySQL JSON 查询
MySQL MEMBER OF 判断 JSON 数组成员时,数字、字符串和 JSON 对象不是同一种值。本文用最小样例说明类型不匹配的原因,并给出按数据域修正查询值、处理 NULL 与核对结果的办法。167 收藏