Go语言技术文章
-
Go 的 HTTP 请求体是一次性读取流,前置中间件、表单解析或 JSON 解码器读到 EOF 后,后面的 io.ReadAll 就可能得到空结果。本文说明如何定位消费点、缓存原始字节、重置 Request.Body,并处理空请求体、大小限制和提前关闭等边界。228 收藏 -
用 sync.Cond 把空队列等待、生产者入队和消费者唤醒连起来,重点说明 Wait 必须放在条件循环中,以及 Signal、Broadcast 和退出处理的边界。228 收藏 -
Go bufio.Reader.ReadString 可能同时返回已读文本和 io.EOF。本文用一个按行读取的小工具说明分隔符、尾部数据与错误状态的关系,并给出先处理数据再判断错误的可靠循环。228 收藏 -
Go collate.Key 可预生成语言排序键供重复比较使用。本文给出复制键后稳定排序的写法,解释 Buffer.Reset 有效期、配置一致性、缓存重建和内存取舍。228 收藏 -
提供一组青灰潮汐岩层手机壁纸的中英文提示词,说明锁屏留白、主体位置、冷色材质和斜向岩层变体如何控制,附两张原创无文字壁纸。228 收藏 -
用 OpenAI Responses API 的语义事件搭建一个 Go SSE 转发服务:把增量文本、完成信号和错误信号分别映射到消息区、按钮状态和错误提示,避免页面把所有流式事件混成普通文本。228 收藏 -
Go time.Time 序列化后失去单调部分是设计如此:单调时钟只对当前进程有意义,JSON、Gob、二进制和文本序列化都会省略它。本文拆解比较、相等判断与耗时统计的正确边界。228 收藏 -
用 Temporal 区分同一时刻换区、当地日历加日和实际时长,结合预约示例处理夏令时歧义,并说明接口存储与兼容层选择。228 收藏 -
用 Go select 同时等待两个输入 channel,讲清接收分支、value 与 ok 的关闭判断、两路输入汇总,以及 default 和阻塞等待的适用边界。228 收藏 -
Go 官方建议不要把 Context 保存进结构体,因为请求级取消、deadline 和值的生命周期会被对象复用混在一起。本文用按调用传递、生命周期检查和 net/http 兼容性例外说明该规则的边界。227 收藏 -
前端状态更新频繁时,批处理负责合并同一调度窗口的重复提交,去抖负责等待连续输入停止后再执行副作用。本文用原生 JavaScript 拆开两者的触发边界,并给出输入、请求、状态和绘制的组合方案。227 收藏 -
PHP WeakMap 能以对象为键保存临时附加元数据,而且键不会增加对象引用计数。本文通过一个 MetadataRegistry 小项目演示写入、读取、自动移除与验收,并说明它和 SplObjectStorage 的选择边界。227 收藏 -
Linux PID 会因为进程退出而复用,保存裸 PID 再发送信号存在误操作竞态。本文用 pidfd_open、pidfd_send_signal 和 poll/epoll 说明如何持有稳定的进程句柄,并梳理线程、子进程创建、权限和兼容性边界。227 收藏 -
Go 的 time.FixedZone 适合固定 UTC 偏移,time.LoadLocation 适合带 IANA 规则的地区时区。本文用创建、转换和格式化示例说明两者边界。227 收藏 -
CSS nesting 可以把组件的基础样式、子元素样式和状态样式放在同一规则中。本文用最小 CSS 示例说明默认后代关系、& 显式父选择器、组合器、媒体查询、特异性和扁平回滚写法。227 收藏