Go语言技术文章
-
Go 1.23 起可以让 for range 直接消费函数迭代器。本文用一个泛型集合实现 iter.Seq 的 All 方法,说明 yield 返回 false 时如何提前停止,并梳理数据复制、并发和发布前检查边界。478 收藏 -
Go 的 httptest.ResponseRecorder.Flushed 只表示 Handler 是否调用过 Flush。本文用最小测试拆开未调用 Flush、断言过早、ResponseWriter 包装和真实网络缓冲的区别。477 收藏 -
Go Expr结构体环境需同时用于编译契约与运行数据。通过任务筛选示例说明expr.Env、字段标签、方法调用、AsBool及错误处理,并区分业务false与求值失败。477 收藏 -
用一个Jinja通知卡片项目说明StrictUndefined怎样暴露模板错拼与缺失变量,区分必填、可选、None和默认值,避免渲染失败被空白输出掩盖。477 收藏 -
电子发票查验时,应从国家税务总局官方入口填写票面字段,再把返回的发票号码、日期、购销双方和金额税额与原票逐项核对。本文整理入口、字段、结果差异和常见问题。477 收藏 -
Go JSON 解码到 interface{} 时数字默认会变成 float64。本文比较明确目标类型、UseNumber 和展示型字符串三种选择,帮助你避免大整数精度丢失。477 收藏 -
reflect.Value.IsValid 判断反射值是否存在,reflect.Value.IsZero 判断有效值是否等于其类型零值。本文用 nil 接口、带类型 nil 指针和 reflect.Zero 拆开两者边界,并给出安全调用顺序。477 收藏 -
Java record 可以通过规范化构造器统一完成参数校验、空白清理、大小写转换和范围规范化。本文说明紧凑构造器与显式构造器的写法,并解释替代构造器为什么必须委托到同一条校验路径。477 收藏 -
从主线程帧预算、滚动事件高频位置读取和观察器边界三个层面,说明怎样用 IntersectionObserver 控制 root、rootMargin、threshold,并通过回调去重与 unobserve 减少滚动监听抖动。477 收藏 -
在 Go 静态分析中,类型别名不能只按 Named 类型处理。本文用 go/types.Alias.Rhs 读取 type A = R 的右侧类型,并说明 Alias、别名链与 types.Unalias 的边界。477 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · JSON · 错误处理 · go · 调试 · Go errors.As encoding/json/v2 SemanticError JSONPointer
Go encoding/json/v2 解码失败时,SemanticError 会携带 ByteOffset、JSONPointer 和 GoType 等上下文。本文用嵌套配置示例说明如何提取这些字段、转换行列位置,并区分语法错误、语义错误与流式读取错误。477 收藏 -
本文用 Go net/http 演示 Cookie.Partitioned 的设置方式,说明它与 Secure、SameSite=None、Path 的关系,以及 Go 版本兼容和响应头排查边界。477 收藏 -
Go debug.SetMemoryLimit 可以给 runtime 设置按字节计算的软内存目标。本文按值班手册说明适用环境、容器余量、运行时指标、持续 GC 判断和回滚方式。477 收藏 -
PHP 日期解析不能只看 DateTimeImmutable 对象是否创建成功。结合 createFromFormat 和 getLastErrors,可以分别读取 warnings、errors,并兼容 PHP 8.2 之后无错误时返回 false 的情况,拦截 2026-02-30 这类自动进位输入。477 收藏 -
Linux find 的 -printf 可以按格式输出路径、字节大小和修改时间,但它不会自动补换行。本文从一条实际清单命令出发,解释常用格式指令、制表符与 NUL 分隔、符号链接边界,以及如何把输出做成便于人读和机器解析的文件清单。477 收藏