Go语言技术文章
-
PHP Fiber 需要事件循环与非阻塞等待配合。本文用 Revolt Suspension 将完成回调转为顺序返回,演示多任务、超时异常、单次恢复与回调清理,并说明阻塞调用、真实 I/O 和主动取消的迁移边界。135 收藏 -
Go sync.Map 并不是所有并发 map 的默认替代品。本文从只写一次多次读取、互不重叠键集合两个官方优化场景出发,结合 LoadOrStore 示例说明它和 map 加 RWMutex 的取舍,以及 Range、类型安全和复制限制。135 收藏 -
Go 升级后 context.Cause 返回值变化,先不要把它当成标准库回归。应按构造函数、首次取消时机、父子 Context 和错误身份四层排查,区分 ctx.Err 的取消状态与 Cause 的具体原因。135 收藏 -
LangChain 的工具返回值不是最终数据模型。本文用 Pydantic 与 ToolStrategy 拆开工具消息、结构化响应和错误边界,说明怎样把查询结果稳定地交给业务代码。135 收藏 -
PHP fputcsv 的 escape 设为空字符串,可以关闭 PHP 专有转义机制,让字段内的引号按 enclosure 双写规则处理。本文解释它与默认反斜杠的差异、写读两端的配置方式,以及 PHP 8.4 起显式传参的兼容注意事项。135 收藏 -
介绍 Go PNG EncoderBufferPool 的适配实现与批量编码接入,提供无池和有池基准示例,解释借还所有权、错误处理及分配下降与内存保留的区别。135 收藏 -
image.NRGBA 保存非预乘8位分量,但 RGBA 方法返回16位预乘值。对照 color.NRGBA、color.RGBA、Set 与 SetNRGBA,解释半透明像素数值变化、原始读取及透明边界。135 收藏 -
用 Go net.IPNet.Contains 判断地址是否落在 IPv4 或 IPv6 子网中,说明 ParseCIDR、地址族、掩码长度和 nil 边界,给出可复用的白名单判断写法。135 收藏 -
Go 的 tls.Config 默认禁止 TLS 重协商。本文从旧客户端兼容场景出发,解释 Renegotiation 的三个取值、TLS 1.2 与 TLS 1.3 的边界,以及如何用握手错误和 ConnectionState 判断拒绝原因。135 收藏 -
unique.Make 没有缓冲区参数。本文用 Go 逐行标签程序说明如何复用 Scanner 缓冲、转换稳定字符串并保存句柄,区分值去重与记录去重,同时解释输入限制、生命周期和性能判断边界。134 收藏 -
slices.Delete 不负责缩小底层数组或关闭文件等资源。本文区分返回值、Go 1.22 起的尾部清零、容器复制、其他引用与 Close 所有权,给出可选收缩的原创示例。134 收藏 -
Linux nftables 的 named set 可以通过 flags timeout 让元素拥有生命周期,再用元素级 timeout 设置临时地址或端口的自动过期时间。本文从创建集合、接入规则、查看 expires 到动态刷新,说明临时规则如何自动清理以及哪些场景不适合使用超时集合。134 收藏 -
Java HttpHeaders.allValues 返回同名响应头的全部值,缺失时得到空列表;本文对比 firstValue、处理不可修改列表,并给出多值头归档写法。134 收藏 -
go mod tidy 在本地与 CI 反复修改模块文件时,如何对齐实际工具链与源码输入,识别测试及标签依赖,并区分 go.mod 和 go.sum 的变化原因。133 收藏 -
用 getent ahostsv4 和 ahostsv6 分别查看主机名的 IPv4、IPv6 地址解析结果,解释输出字段、AI_V4MAPPED 行为、退出码以及双栈排障边界。131 收藏