Go语言技术文章
-
timerfd 的可读通知不等于只触发一次。本文用 uint64_t 累计到期次数、非阻塞 read 与 EAGAIN 处理,说明如何在 poll/epoll 事件循环中正确消费定时器事件。218 收藏 -
Go benchmark 每次运行数字不同,通常不是 testing.B 失效,而是被测代码、计时边界和机器环境共同产生了噪声。本文用最小基准说明波动来源,并给出可比较的运行方式。218 收藏 -
从包依赖、包级变量依赖和源文件顺序三层解释 Go init 函数的执行顺序,并给出排查隐藏初始化依赖与改为显式 Setup 的方法。218 收藏 -
Java SE 26 的 Class-File API 用模型、转换器和 builder 表达 class 文件改写。本文从替换方法体中的调用指令入手,说明 CodeTransform 如何提升到 ClassTransform,以及版本、常量池和异常边界。218 收藏 -
用 JSONDecoder.raw_decode 的结束索引维护 Python 解析游标,逐段读取完整文本中的多个 JSON 值,说明空白分隔、错误位置、提交边界与网络分块限制。218 收藏 -
通过postMessage转移列表减少Web Worker中ArrayBuffer的往返复制,给出双文件示例,解释发送端分离、共享视图、子数组与失败重试时的数据所有权。218 收藏 -
Redis SORT_RO 适合在不写入排序结果键的情况下读取列表、集合或有序集合中的排序结果。本文从数值列表开始,说明 ASC、DESC、LIMIT、BY、GET、ALPHA 及 SORT_RO 的只读边界。218 收藏 -
Go unicode.ToLower 接收单个 rune 并按 Unicode 大小写映射返回 rune。本文说明它对非字母字符的行为、range 遍历字符串的正确写法,以及如何用 []rune 或 strings.Builder 组装转换结果。218 收藏 -
Go go-geom 的XY步长为2、XYZ步长为3。本文从批量坐标契约解释扁平数组的切分方式,提供输入约束、遍历和显式降维示例,并区分XYZ与XYM。218 收藏 -
Python sqlite3 使用文件 URI、mode=ro 与 uri=True 打开已有只读主库。本文给出路径编码与资源关闭示例,并区分误建空库、连接失败、WAL 辅助文件与 immutable 参数的适用条件。218 收藏 -
Go reflect.TypeFor 适合在泛型代码中获取编译期已知类型的 reflect.Type;动态值仍应使用 reflect.TypeOf。本文用注册表示例说明两者的选择、接口边界和兼容注意事项。218 收藏 -
Python 3.13 起可以用 typing.TypeIs 声明用户自定义类型谓词。本文用联合类型示例说明 True 分支如何做交集收窄、False 分支如何排除目标类型,并比较 TypeIs 与 TypeGuard 的适用边界。218 收藏 -
Go 的 url.Values.Get 在参数缺失和参数值为空时都会返回空字符串。要保留这两种语义,应使用 Has 判断键是否出现,或直接读取 map 中的 []string,并结合 ParseQuery 的错误处理统一封装。218 收藏 -
Go TCP 建连成功不代表业务响应完成。本文按读写阶段检查过期 deadline、缓冲刷新、协议帧和部分传输,并用独占连接示例说明交换预算与超时重试边界。218 收藏 -
Java virtual threads 的优势是用较低的线程承载成本扩大阻塞 I/O 服务的并发规模,而不是让单个任务跑得更快。本文按等待占比、请求模型、资源限制和观测指标判断适用场景,并给出 Java 21+ 的落地写法。218 收藏