Go语言技术文章
-
Go net.Dialer 通过 LocalAddr 指定客户端拨号使用的本地地址。本文用 TCPAddr 说明本地 IP、固定端口、端口 0 与 tcp4/tcp6 地址族的选择边界。437 收藏 -
Go netip.Prefix 表示一个 CIDR 网段,但 Addr 可能仍保留主机位。本文用 Masked 得到规范化起始地址,再按 IPv4 与 IPv6 的位数计算最后地址,说明无效前缀、单地址前缀和地址族边界。204 收藏 -
QueryUnescape 遇到不完整或非十六进制的百分号转义时会返回 EscapeError。本文说明如何保留原始值、定位坏片段、理解加号语义,并处理 ParseQuery 的部分成功结果。292 收藏 -
Golang · Go教程 | 3天前 | 网络编程 · 标准库 · ip地址 · Go教程 · Go netip.Addr ParsePrefix CIDR net/netip netip.Prefix ParseAddr
Go net/netip 中,单个 IP 地址应使用 Addr,带斜杠的 CIDR 网段应使用 Prefix。本文从输入分流开始,说明 ParseAddr、ParsePrefix、Masked、Contains 以及 Addr.Prefix 和 PrefixFrom 的区别。337 收藏 -
Go bufio.Reader 在成功 ReadRune 后可用 UnreadRune 回退一个码点。本文以数字串试探解析为例,说明同一 Reader、Peek 失效、重复回退、EOF 与非法 UTF-8 的处理边界。336 收藏 -
Golang · Go教程 | 3天前 | 标准库 · 错误处理 · 文件读取 · Go教程 · Go bufio bufio.Reader ErrBufferFull ReadSlice bytes.Join 文本扫描
bufio.Reader.ReadSlice 遇到没有及时出现的换行符时会返回 ErrBufferFull 和一段暂存切片。本文说明怎样先复制片段、继续读取,再用 bytes.Join 拼回完整一行,并区分 EOF 与真实错误。472 收藏 -
Go 1.22 的 slices.Concat 可以把多个同类型切片按传入顺序合并成新切片。本文用最小示例说明顺序、空切片、nil 结果、自定义切片类型,以及它与 append 的选择边界。168 收藏 -
Go 的 io.Pipe 可以让生产者 goroutine 通过 PipeWriter.CloseWithError 把失败原因传给消费者。本文用一条最小配方说明正常 EOF、业务错误和关闭时机的区别。306 收藏 -
Go io.MultiWriter 按顺序写入多个目标,遇到错误会立即停止。本文用失败 Writer 说明 n、err、短写和未执行目标的边界,并给出多目标尽力写入时的补偿方案。342 收藏 -
读取请求体、文件或消息流时,直接调用 io.ReadAll 会一直读到 EOF。本文用 io.LimitReader 设置最大读取范围,再用一字节探测区分正常结束、刚好达到上限和真正超限。303 收藏 -
Go exec.Cmd 应从命令环境副本追加受控覆盖,避免显式 Env 丢失继承项。本文说明 nil 与空切片、Dir 和 PWD、空值与删除,并给出完整示例及敏感变量继承的限制。269 收藏 -
Go 的 exec.Cmd 可以通过 ExtraFiles 把父进程已经打开的管道或套接字传给子进程。关键规则是 ExtraFiles[i] 在子进程中从文件描述符 3+i 开始,而不是沿用父进程原来的编号。452 收藏 -
用 Go 的 signal.NotifyContext 把中断和终止信号接到根 context,统一驱动服务退出;本文说明 ctx.Done、defer stop、context.Cause 以及 SIGTERM、os.Kill 的边界。105 收藏 -
Go flag 的多子命令程序可以为每个子命令创建独立 FlagSet,并分别设置 Usage 与输出流。本文用 serve、config 示例说明帮助文本隔离、解析错误处理和验证方法。350 收藏 -
Go flag 使用独立双短横线结束包装层选项解析,通过 Args 保留子命令参数。本文给出完整示例,说明普通参数提前终止、第二个分隔符、空参数与进程接口的处理边界。153 收藏