Go教程技术文章
-
本文用一个最小 Go 结算示例说明 shopspring/decimal 如何通过 RoundBank 实现银行家舍入,涵盖字符串金额解析、保留两位小数、中点取偶数、负数与 StringFixed 展示边界。430 收藏 -
从原始字符串直接构造 shopspring/decimal 小数,比较字符串、浮点数和整数入口,提供带错误处理的完整示例,并区分精确数值、业务约束和固定小数显示。252 收藏 -
用 Go Flock 区分 RLock/TryRLock 与 Lock/TryLock 的适用范围,覆盖只读快照、文件更新、非阻塞降级以及共享锁升级的跨平台风险。126 收藏 -
用 github.com/gofrs/flock 的 TryLock 实现非阻塞进程互斥,区分 locked=false 与错误,安排 Unlock 清理,并用 TryLockContext 设置有限等待边界。317 收藏 -
Go Flock 可以用 TryLockContext 在限定时间内反复等待文件锁。本文用 context.WithTimeout 示例说明 bool、error、ctx.Err() 的判断方式,以及成功持锁后的 Unlock、retryDelay 和锁文件边界。113 收藏 -
用 CEL-Go 的 EstimateCost 做静态成本估算,再用 CostTracking 与 CostLimit 限制运行期求值预算;同时区分超限、业务错误和扩展函数成本。419 收藏 -
通过 CEL PartialVars 与 OptPartialEval 描述尚未提供的输入,用完整 Go 示例比较未知、false 和 true,说明属性模式、结果分类和补齐输入后的重新求值。112 收藏 -
用 cel.Variable 声明 CEL 输入变量,配合 Env.Compile 和 Env.Program 编译可复用的 Go 筛选表达式,并区分编译期与求值期错误。394 收藏 -
在 Go Expr 编译阶段用 AsBool 建立布尔返回契约,配合 WarnOnAny 处理 any 类型表达式,并区分编译错误、运行错误与结果接收边界。479 收藏 -
将 Expr 编译移出重复求值路径,保存并复用 vm.Program;通过完整 Go 示例说明 Env、AsBool、独立输入,以及规则更新和缓存失效的处理边界。204 收藏 -
Expr 的 Env 不是运行时数据容器,而是表达式编译时的输入声明。本文用结构体环境拆解 Compile 与 Run 的职责边界,说明字段、类型和运行值不一致时如何定位,并给出可复用的错误处理写法。357 收藏 -
用 Go Doublestar 的 WithNoFollow 控制递归匹配遇到目录符号链接时的遍历边界,并说明固定路径前缀、WithFilesOnly 与 WithFailOnIOErrors 的组合注意事项。102 收藏 -
用 Go Doublestar 的 GlobWalk 按 ** 模式遍历 fs.FS,在回调里处理文件、跳过目录并传播错误;同时比较 GlobWalk、Glob 和 FilepathGlob 的适用边界。422 收藏 -
用 Doublestar 的目录前缀与 **/*.ext 模式限制递归匹配范围,说明 Glob、GlobWalk、文件过滤、路径分隔符和错误边界。331 收藏 -
用 Pond v2 的 NewSubpool 设置局部并发上限,解释子池与父池的共享额度、任务结果等待、退出顺序,以及资源预留误解和嵌套等待风险。241 收藏