Go语言技术文章
-
通过一个可运行的 Go 示例,拆解 sort.Find 的比较函数方向、最小插入点和 found 返回值,避免把它误用成返回 -1 的查找函数。440 收藏 -
pathlib 和 os.path 都能处理 Python 文件路径,但适用边界并不一样。本文用配置目录、拼接、规范化和真实存在性检查四个场景比较两套 API,给出可落地的选型规则。353 收藏 -
encoding/binary.Append 会把固定大小数据追加到已有字节切片,并返回可能扩容后的新切片。正确承接返回值,才能同时处理底层数组复用、容量变化和不支持类型的错误。467 收藏 -
Java Stream.toList() 与 Collectors.toList() 都能把流收集成 List,但返回列表的可变性、null 边界和类型推断并不相同。本文用可运行示例说明如何按后续操作选择写法。462 收藏 -
Golang · Go问答 | 5天前 | go · Context · net/http · Go context取消 http.NewRequestWithContext Request.WithContext
http.NewRequestWithContext 与 Request.WithContext 都能把 context 交给 Go HTTP 请求,但创建时绑定、浅拷贝语义和请求体复用边界并不一样。本文用可运行示例拆开取消责任、Clone 深拷贝和常见误区。177 收藏 -
ClassValue 适合把与 Class 绑定的元数据懒加载并缓存起来。本文用一段可运行示例拆开 get、类型值计算、remove 的关系,并说明它与普通 Map 缓存、类卸载之间的边界。124 收藏 -
Go 1.25 为 testing.T 增加了 Attr 方法,可以把稳定的测试元数据写进普通测试日志和 go test -json 的 attr 事件。本文用一个订单接口测试拆开 t.Attr 的调用位置、键值边界、JSON 验收方式,以及与 Log 和 Output 的分工。269 收藏 -
strings.TrimSpace 不只处理 ASCII 空格,它按 Unicode 空白规则裁掉字符串两端字符。本文用最小实验拆开 TrimSpace、unicode.IsSpace 与 TrimFunc 的关系,并给出字段清洗时的边界做法。420 收藏 -
net.Buffers 把多个字节切片组织成一次 WriterTo 写入,并在支持批量写的连接上走 writev 优化;理解 WriteTo 的切片消费和短写边界,才能安全拼接协议响应。271 收藏 -
科技周边 · 业界新闻 | 5天前 | 云原生 · 监控 · kubernetes · 业界新闻 · HPA · HPA Kubernetes v1.37 metrics.k8s.io Metrics API
Kubernetes v1.37 将 metrics.k8s.io API 提升为 Stable。本文结合官方发布说明,拆解 HPA 依赖的指标链路、升级后的核对命令和常见误区。225 收藏 -
net/netip.Prefix.Overlaps 用来判断两个 CIDR 前缀是否包含共同 IP,但地址族、零值前缀、IPv4 映射 IPv6 和 /0 边界都会影响结果。本文用一段可运行的 Go 代码拆开这些判断。377 收藏 -
Golang · Go教程 | 5天前 | 标准库 · Go教程 · JSON编码 · Go nil指针 json.Marshal MarshalJSON encoding.TextMarshaler
当一个 Go 类型同时靠方法集实现文本编码或 JSON 编码时,json.Marshal 会先看 MarshalJSON,再考虑 encoding.TextMarshaler;nil 指针又有单独的保护规则。本文用最小示例拆开调用优先级、指针接收者和嵌套字段边界。349 收藏 -
RAG 应用把检索结果直接拼进提示词,常会遇到重复段落挤占上下文、引用指向不稳定和答案被相似文档带偏的问题。本文用一条可回放的数据流说明候选文档如何去重、截断并组成引用上下文。146 收藏 -
signal.NotifyContext 让操作在收到系统信号时通过 ctx.Done 退出,但取消上下文与停止信号订阅是两件事。理解 stop 的资源释放和默认信号行为,才能写出可重复启动、可测试的优雅退出代码。295 收藏 -
Go 的 time.Duration.Abs 可以把负持续时间转成正值,但对 math.MinInt64 有特殊处理:结果是 math.MaxInt64。本文从源码语义、正常调用和边界测试三个角度说明如何安全展示耗时。132 收藏