Go教程技术文章
-
strings.Builder 可以通过 Reset 复用同一个构建器对象,但不能把 Reset 当成保留底层容量的承诺。本文说明安全复用、Grow、String、非零值复制和 bytes.Buffer 选择边界。151 收藏 -
用 Go strings.TrimFunc 和 rune 判定函数清理字符串两端的 Unicode 字符,掌握中文、空字符串与内部字符的处理边界。270 收藏 -
bufio.Writer.Reset 可以复用内部缓冲区并切换下游 io.Writer,但会丢弃未 Flush 的数据并清除错误状态。本文用一个批量写入场景说明 Flush、Reset、资源关闭和并发边界。490 收藏 -
Peek用于只看不消费,UnreadByte用于退还最近读取的一个字节,二者不能机械配对。通过固定前缀识别与ASCII数字字段示例,说明共享Reader、借用切片、分隔符归属、短读与超长输入的处理边界。439 收藏 -
Go bufio.Reader.ReadLine 返回 isPrefix 并不表示读取失败,而是说明当前 line 只是长行的一段。本文用原创 Go 示例说明如何拼接片段、处理 EOF 与 CRLF,并封装单行读取接口。411 收藏 -
Go 的 os.Chown 接收路径、uid 和 gid,用于修改 Unix 文件或目录的数字所有者信息。本文说明 -1 保留参数、符号链接与 Lchown 的差别、权限错误处理和 Windows/Plan 9 平台边界。329 收藏 -
io.NewOffsetWriter 把 WriterAt 映射成带基准偏移的写入器,但 Seek 不支持 io.SeekEnd。本文拆解失败原因、相对坐标与文件末尾定位的可执行写法。396 收藏 -
用 io.NopCloser 把 Reader 适配为 ReadCloser,解释空 Close 与真实资源清理的边界,并给出请求体和资源所有权示例。472 收藏 -
Go io.LimitedReader 可以把下游读取限制在固定字节数内。本文从上传流和请求体场景出发,说明 LimitReader 的上限语义、EOF 判断、底层错误处理,以及为什么限制器不会自动关闭原始 Reader。481 收藏 -
Go io.ReaderAt 适合按偏移读取固定长度记录。本文用偏移公式、完整读取示例和错误表,说明如何处理短读、EOF、溢出和底层 I/O 错误。333 收藏 -
Go 使用 slices.SortStableFunc 并让相同排序键返回 0,可以保留本次输入中等价记录的相对次序。本文区分批内稳定性与跨请求确定性,说明切片复制、分片收集和次级键的取舍。309 收藏 -
Go HTTP 服务优雅关闭的关键是先停止接收新连接,再等待活跃请求回到空闲;本文用 signal.NotifyContext、Server.Shutdown 和超时兜底组成可直接复用的关闭流程,并说明 WebSocket 等长连接的额外边界。157 收藏 -
Go Ticker.Stop 不会关闭通道,也不会终止工作 goroutine。通过串行周期任务示例,说明计时器所有权、Context 取消、done 完成确认,以及慢任务和新旧计时通道语义。295 收藏 -
Go 交叉编译时,纯 Go 项目可以通过 CGO_ENABLED=0 关闭 cgo,再用 GOOS 和 GOARCH 选择目标平台。本文从构建命令、go env 检查、cgo 构建约束和纯 Go 替代实现四个方面说明可执行做法与依赖边界。487 收藏 -
go env -w 会把 Go 环境变量的默认值写入每用户配置文件,适合持久化 GOPROXY、GOFLAGS 等工具链设置。本文比较它与 export、命令行参数和项目配置的边界,并给出读取、撤销和协作场景的选择方法。130 收藏