Go教程技术文章
-
Go 的 bytes.Reader 适合从 []byte 创建只读游标。本文用一个可运行示例说明 Read、ReadAt、Seek、Len、Size 和 Reset 的区别,帮助你按顺序读取或按偏移取字节。125 收藏 -
Go 的 DisallowUnknownFields 适合封闭、可控的 JSON 写接口,用来尽早发现拼写错误;面对第三方 webhook 和可扩展 payload 时应谨慎开启。125 收藏 -
Go os.CopyFS 复制 embed.FS 时,目录按 0o777 创建并受 umask 影响,文件按 0o666 加源文件执行位创建;本文说明权限检查、已有文件和跨平台边界。124 收藏 -
Go 限制上传读取长度时,不要只相信 Content-Length,也不要直接 io.ReadAll。本文用 io.LimitReader 暴露 maxBytes+1 字节,再配合 io.Copy 流式写入临时目标,区分正常文件、超限文件和读取失败。123 收藏 -
Go crypto/subtle 的 ConstantTimeSelect 用 0/1 条件在两个整数之间选择结果。本文说明 v 的合法范围、如何生成选择值、参数求值边界和测试方法。121 收藏 -
Go archive/zip.Reader.Open 读取嵌套目录时,路径要使用 ZIP 内部的斜杠分隔名;本文用完整示例说明目录判断、资源关闭和常见错误排查。120 收藏 -
os.WriteFile 会先打开并截断已有文件,写入中途失败可能留下残缺内容。本文解释权限错误的判断方法,并用同目录临时文件加替换保护原文件。118 收藏 -
讲清 Go os.CreateTemp 的目录与 pattern 规则,演示如何按业务前缀创建临时文件,并用 Close、Remove 和 defer 覆盖异常路径清理。117 收藏 -
Golang · Go教程 | 3天前 | 并发 · Context · Go教程 · Go context.AfterFunc context.AfterFunc stop Go 回调取消竞态 Go 判断回调是否开始
context.AfterFunc 的 stop 返回 false 并不等于回调已经执行完。本文拆开停止、开始和完成三个状态,用 started 与 finished 通道安全判断回调进度。117 收藏 -
讲清 Go regexp.QuoteMeta 如何把用户输入转成字面匹配片段,并给出与固定正则组合、处理空输入和区分替换模板的实践方法。116 收藏 -
解释 Go url.ParseQuery 遇到未编码分号时返回错误的原因,区分分隔符与参数值,给出正确编码、旧协议兼容和回归检查方法。115 收藏 -
Go 文件读取不是简单比较 API 名称:完整内容且能放进内存预算时用 os.ReadFile,只取固定范围或需要随机访问时用 File.ReadAt;本文用文件大小、访问模式和短读处理给出判断清单。115 收藏 -
掌握 Go sort.Search 的单调谓词、空切片与 len(data) 尾部返回值,正确处理升序、降序、重复值和插入位置。114 收藏 -
解释 Go regexp.Split 为什么不能可靠解析复杂 CSV,展示字段内逗号、转义引号和换行的边界,并给出使用 encoding/csv.Reader 的读取与错误处理方式。112 收藏 -
讲清 Go 中 string、byte、rune 与 UTF-8 字节的区别,演示 DecodeRuneInString 的读取方式,以及 ValidString 和 RuneError 的异常处理。112 收藏