Go语言技术文章
-
Go strconv.Atoi 已经把字符串按当前平台 int 宽度解析。遇到溢出或非法文本时,应先检查 error,再做业务范围判断,最后才使用转换结果。137 收藏 -
Go reflect 中 CanAddr 与 CanSet 不是一回事。本文用 ValueOf、Elem、结构体字段、切片元素和 map 索引拆解 Set panic,并给出可复查的安全写入方法。136 收藏 -
Go 的 omitempty 只能按编码规则省略部分空值。把它与指针字段组合,可以清楚区分字段缺省、显式 null、空字符串和数字零值,适合 PATCH 请求与可选响应字段设计。136 收藏 -
围绕 Go net TCP 监听地址,说明通配地址、具体网卡 IP、tcp4/tcp6 与双栈边界,并给出启动异常的排查清单。134 收藏 -
用 Go os/signal 接收 SIGINT 和 SIGTERM,将信号接入服务生命周期,说明缓冲 channel、NotifyContext、Stop 以及重复信号和平台边界。132 收藏 -
从资源标签、账户层级和共享成本出发,建立可解释的云成本归属指标,并把预算、实际与预测连接到团队决策。132 收藏 -
Linux下使用curl的Range按字节区间下载大文件,检查206响应和片段大小后顺序合并,再用sha256sum校验完整性。132 收藏 -
Go compress/gzip 写入后不调用 Close,可能导致缓冲数据和 GZIP footer 没有完整写出。本文用最小示例说明 Write、Close、底层资源关闭和读取到 EOF 的排查顺序。132 收藏 -
Redis Bitmap 的 offset 是从 0 开始的位偏移,不是字节下标。本文用字节映射、Go 边界检查和 BITFIELD 定宽字段示例,说明如何计算位图偏移并避免负数、整数溢出和 2^32 上限带来的越界问题。130 收藏 -
围绕 Go time.Ticker 的 Stop、ticker.C 和停止瞬间的残留 tick,说明如何结束消费循环、避免错误 drain,并给出关闭检查清单。128 收藏 -
Go sync.WaitGroup 的关键不是把 goroutine 等住,而是让 Add、Done 与 Wait 围绕同一批任务形成稳定配对,本文给出可直接复用的写法与排查边界。123 收藏 -
Go unsafe 指针转换的关键不只是地址能否转,而是对象在底层调用结束前是否仍然可达。本文用直接传参、runtime.KeepAlive 和 unsafe.Add 说明安全边界。123 收藏 -
用 PHP Intl 的 NumberFormatter 按地区格式化货币和小数,说明 locale、保留位数、舍入模式与自定义 pattern 的使用边界。122 收藏 -
Go time.Time 取整时,Truncate 向下归入已开始的时间窗口,Round 选择最近的时间刻度。本文用代码和边界表对比两者结果,并说明 Location、负时间和非正 Duration 的处理方式。119 收藏 -
从最小 dataclass(slots=True) 写法出发,说明固定字段布局、动态属性限制、继承重复字段、weakref_slot 与 fields() 的边界,给出迁移和验收清单。118 收藏