Go语言技术文章
-
用 slices.BinarySearchFunc 在按字段排序的 Go 结构体切片中查找记录,说明比较器契约、未命中的插入点、重复字段和更新后的维护方式。366 收藏 -
Java Stream 使用 groupingBy 分组时,想让结果按输入中键第一次出现的顺序遍历,应指定 LinkedHashMap::new;同时要区分外层 Map 键顺序、组内 List 顺序,以及并行流和 TreeMap 的不同语义。366 收藏 -
普通测试单线程运行正常,并不代表 Go 程序没有数据竞争。本文用共享计数器说明调度差异,演示 go test -race 的最小复现、报告定位和原子操作、互斥锁的修复边界。366 收藏 -
企业安装厂房屋顶分布式光伏前,应先核对备案主体、屋顶权属、并网申请、设备认证、承重防水和施工安全资料。本文给出一份按项目、并网、施工三层拆开的开工前检查清单。366 收藏 -
Go 报 sync: negative WaitGroup counter,通常不是 Wait 本身出错,而是某条执行路径让 Done 多于已完成的 Add。本文从计数关系、defer 作用域、错误分支和 helper 责任四个位置定位多余的 Done,并给出可复用的修复写法。366 收藏 -
Go time.Time 经过 JSON 序列化后,变化的通常是 Location 名称或夏令时规则,而不是时间瞬时点。本文拆解 RFC3339、偏移量和位置恢复的边界。366 收藏 -
Linux epoll 使用 ET 边沿触发时,事件只表示状态发生过变化。本文解释为什么要配合非阻塞 fd 循环读取到 EAGAIN,并给出关闭、半包、饥饿和事件缓存的处理清单。366 收藏 -
Go regexp.Longest 会修改 Regexp 实例的匹配策略,不能与其他方法并发调用。本文说明如何在启动阶段完成配置,让多个 goroutine 安全复用共享正则,并隔离不同匹配策略。366 收藏 -
讲清 Go strings.CutPrefix 的 after 与 found 返回值,处理可选协议前缀、空前缀、重复前缀和大小写边界,并给出旧版 Go 的兼容写法。366 收藏 -
Go os.OpenFile 的 perm 不是最终权限。本文用 umask、stat、UID/GID 和挂载状态拆解容器中权限看似失效的原因,并给出最小权限修复方法。366 收藏 -
AI 生成代码最容易失控的地方不是语法,而是修改范围。本文用单元测试、修改预算和 git diff 双重门禁,拆解如何让一次生成式改动保持可验收、可回退。366 收藏 -
本文针对墨刀AI在线原型适配长流程业务的疑问,从步骤数、状态分支等维度展开选型测试,给出不同复杂度业务的落地使用建议。366 收藏 -
文章 · php教程 | 1个月前 | 协程 · PHP · 异步编程 · Fiber::suspend Fiber::resume PHP Fiber Fiber::getReturn 协程值传递 Fiber 生命周期
PHP Fiber 的值传递要拆成三段:start 或 resume 取到 suspend 交出的值,resume 的参数回到 Fiber 内部的 suspend 调用,Fiber 结束后再用 getReturn 读取最终 return。本文用一个多轮暂停示例说明设计边界、状态检查和异常清理。366 收藏 -
用 Go httptest.NewRequest 构造带指定 Host 的服务端请求,区分绝对 URL、Request.Host 与 Header 中 Host 的边界,并给出 handler 测试中的断言写法和常见陷阱。366 收藏 -
本文从 tls.Config.RootCAs 的 nil、系统池副本和自定义 CertPool 三种语义出发,说明如何用来源元数据与 VerifiedChains 排查 Go HTTPS 连接实际使用的根证书。366 收藏