Go语言技术文章
-
Golang · Go问答 | 1个月前 | 配置 · 设计模式 · 架构 · Go问答 · 代码重构 · Go 默认值 配置参数 参数校验 构造函数 option Functional Options
Go 的构造函数参数从 3 个长到 8 个后,直接继续加位置参数会让调用点难读也难兼容。Functional Options 能把可选配置变成具名、可组合的设置项,但它不适合承载必填依赖或运行期变更。本文给出最小实现、交叉校验和选择清单。100 收藏 -
用一只带手作纹理的陶杯完成晨雾茶园产品摄影:给出可直接复制的中英文完整提示词,并通过主体位置、雾气、侧光和右侧留白的调整,展示适合电商主图与横幅封面的两种成片变化。100 收藏 -
TypeScript 为什么要引入泛型?泛型(Generics)是 Typescript 中很重要的一个特性,它可以帮助我们创建可重用的组件,同时还能具备类型安全性。主要的优点有:更好的可重用性:通过泛型可以创建一个组件,使其可以支持多种类型,比如创建一个函数或类时,不预先指定具体的类型,而是在使用100 收藏 -
文章 · java教程 | 3星期前 | 数据结构 · Java教程 · 集合框架 · Java 21 · java 集合框架 SequencedCollection reversed getFirst getLast
Java 21 引入 SequencedCollection 后,List、Deque 等有顺序集合可以用统一的首尾 API 与 reversed() 视图处理最近记录、队列和倒序展示。本文从订单事件列表出发,说明接口选择、空集合边界、反向视图写入和不可变包装的验收方法。100 收藏 -
Go HTTP/1 服务处理流式上传时,如果边读请求体边写响应,默认行为可能让两边互相等待。本文用 ResponseController.EnableFullDuplex 拆开触发条件、最小写法、HTTP/2 差异和超时边界。100 收藏 -
用 Java Spliterator 的 trySplit 做批量切分时,关键不是让任务越多越好,而是读懂估算值、切分结果与剩余区间,给并行流设置可验收的批次边界。100 收藏 -
用 Go 泛型约束实现一个可复用的分组聚合函数,拆解 key 提取、map 累积、append 合并和结果校验,兼顾类型安全与调用体验。100 收藏 -
Go 里 iter.Seq 是惰性遍历函数,slices.Collect 会把它完整收集成切片。文章用一个分页数据场景说明如何提前停止、如何估算内存,以及什么时候不该直接 Collect。100 收藏 -
Go 测试需要共享临时目录、测试服务或客户端时,可以用 TestMain 统一初始化和清理。本文说明如何保存 m.Run 的退出码、区分夹具初始化失败与测试失败,并避开 os.Exit 跳过 defer 的清理陷阱。100 收藏 -
Java 模块反射报访问被拒绝时,先看调用是否需要深反射:exports 面向公开类型和成员,opens 面向运行时访问包内全部成员。本文用 module-info.java、--add-opens 和 Module API 给出排查与落地方法。100 收藏 -
Go bufio.Scanner 读取超长行时,关键是在第一次 Scan 前调用 Buffer 设置初始缓冲区和最大 token 大小,并为换行符预留空间;如果行长不可控或需要恢复,则应改用 bufio.Reader。100 收藏 -
解释 PHP match 没有命中分支时抛出 UnhandledMatchError 的原因,并用 default、显式异常和输入归一化设计可靠的默认结果。100 收藏 -
Go 的缓冲 channel 满载后,普通发送会等待消费者。用 select 同时监听 ch <- value 与 ctx.Done(),就能在取消或超时后返回 ctx.Err,避免生产者 goroutine 一直卡住。100 收藏 -
Go context.WithCancel 的父子关系是单向取消传播:父 context 取消会让子 context 和后代一起结束,子 context 取消不会影响父 context 或兄弟节点。本文用代码说明 Done、Err、cancel 和资源释放边界。100 收藏 -
小型工厂做委外加工时,用一个委外批次号串起来料、工艺路线和验收单,再按身份、工序、结果和放行状态逐项核对,能减少只凭一张“合格”单放行的风险。100 收藏