Go教程技术文章
-
Go time.Time.Weekday() 返回星期值,Weekday.String() 可直接得到英文名称;如果界面需要中文,应保留星期值并在展示层显式映射。本文给出最小写法、零值与时区边界,以及 API 返回结构的选择建议。251 收藏 -
通过 Scanner.Buffer 提高 bufio.Scanner 的单行扫描上限,并用 Bytes 复用当前缓冲,减少批处理循环中的无谓字符串分配。251 收藏 -
Go constant.Int64Val 返回 int64 数值和精确可表示标志。本文说明怎样检查 exact、处理超出 int64 的常量、区分 Unknown,并封装出不会误传未定义数值的适配函数。251 收藏 -
配置文件写入成功并不等于断电后一定保留。本文用 Go 的临时文件、os.File.Sync、os.Rename 和目录同步串起安全替换流程,解释每一步解决什么问题,以及如何用重启和故障注入思路核对结果。250 收藏 -
用 Go 检查外部命令启动时会继承哪些环境变量,演示 Cmd.Environ、Cmd.Env 与 LookPath 如何配合,让本地和生产环境的启动条件更容易复现。250 收藏 -
用 Go 的 net/netip 解析 CIDR 配置并校验客户端地址,重点看 Prefix.Contains 的地址族边界、ParsePrefix 错误处理与 PrefixFrom 的掩码差异。250 收藏 -
自定义集合不必暴露内部切片或 map,也能直接支持 for range。做法是让 All 方法返回 iter.Seq[T],在闭包里调用 yield,并把 false 当作停止信号。本文用一个泛型集合说明接口形状、提前 break 和重复遍历的边界。250 收藏 -
讲清 Go slices.SortStableFunc 按团队、优先级等多个字段排序时的稳定比较器写法,说明比较结果、降序参数、等价元素和常见溢出误区。250 收藏 -
Golang · Go教程 | 1个月前 | channel · select · Context · 并发编程 · Go教程 · context取消 time.NewTimer goroutine退出 Go select channel超时
本文给出一个可复用的 Go select 写法,同时监听任务结果、局部超时和上游取消信号,并解释缓冲结果通道、派生 Context、CancelFunc、ctx.Err、计时器释放及多个 case 同时就绪时的处理边界。250 收藏 -
Go 用 UTF32 配置小端解码器,再通过 transform.NewReader 转成 UTF-8。本文说明 IgnoreBOM、UseBOM、ExpectBOM 的区别,以及流式处理中的资源归属和部分输出。250 收藏 -
Go encoding/gob 传输接口字段时,需要用 gob.Register 注册接口里实际出现的具体类型,并在解码侧完成对应注册。本文用一个包含接口字段的消息结构体说明注册、编码、解码和常见失败边界。250 收藏 -
通过TicketID实现fmt.Formatter,复用宽度与精度,区分字符串展示和数值格式,并说明递归、Stringer优先级与采用边界。250 收藏 -
Go ast.FilterFile 会原地裁剪 *ast.File,按 Filter 回调筛选顶层声明和相关字段。本文说明 ast.IsExported 的用法、返回值、导入移除、注释保留及重复处理边界。250 收藏 -
本文围绕 encoding/csv Reader.InputOffset 说明当前输入流字节偏移的含义,给出成功读取后保存进度、定位解析错误以及从记录边界继续读取的简洁写法。250 收藏 -
用 Go 的 io.Pipe 把数据生产、gzip 压缩和 HTTP 请求体串成流,讲清同步背压、错误传播、取消处理以及 Content-Length 和重试边界。249 收藏