Go教程技术文章
-
Go strconv.ParseBool 只接受固定的 1、t、true、0、f、false 等布尔文本,yes/no、on/off 和带空格的输入需要业务层先明确处理。本文从配置、环境变量和表单输入三个场景说明如何检查 error、区分 false 与解析失败,并用适配函数扩展业务别名。394 收藏 -
Go -race 只能发现运行时真正触发的竞态,而且典型开销明显高于普通测试。本文把 CI 拆成快速层、并发重点层、全量竞态层和长链路层,说明如何配置 -p、-parallel、GOMAXPROCS,并区分真实竞态与资源型失败。393 收藏 -
Go 的 iter.Seq 用 yield 回调交付序列元素,以布尔返回值约定是否继续。本文通过只取前三个编号的示例,说明按需生成、提前停止、资源清理与重复遍历的职责,并区分惰性、缓存和并发。393 收藏 -
Go strings.IndexFunc 接收一个 rune 判断函数,返回第一个满足规则的 Unicode 字符在原字符串中的字节偏移;没有匹配时返回 -1。本文用 Unicode 字符属性和自定义规则说明最小写法、字节边界及未命中处理。393 收藏 -
Go 1.27 支持在方法声明中使用类型参数。本文从接收者、调用推导和接口限制三个边界说明 generic method 怎样复用类型参数,并给出适合工程代码的设计方式。393 收藏 -
用 Go 的 text/scanner.Scanner 从 UTF-8 文本中逐个读取词元,掌握 TokenText、Position、Pos、Mode、Whitespace 和错误回调的边界,适合配置文件、轻量 DSL 与源码片段的词法扫描。393 收藏 -
Go 1.22 起,ServeMux 可以在路由模式中声明路径通配符,再用 Request.PathValue 读取变量。本文用最小示例说明单段、多段路径变量和空值边界。393 收藏 -
Go cfg.New 可以把一个函数体转换成简单控制流图。本文从 AST 函数体出发,说明 mayReturn 回调、CFG.Blocks、Block.Nodes、Succs 与 Kind 的关系,并给出分支、返回和不返回调用的处理方式。393 收藏 -
Go encoding/binary.AppendByteOrder 提供了把整数追加到已有字节切片的接口。本文用 BigEndian、LittleEndian 和 NativeEndian 对比说明字段追加、缓冲区复用与跨平台协议的选择边界。393 收藏 -
介绍 Go flag.FlagSet.VisitAll 如何遍历全部已定义参数,读取 Name、Usage、DefValue 生成帮助文本,并解释它与 Visit 只遍历已设置参数的区别。393 收藏 -
Golang · Go教程 | 6天前 | 标准库 · HTTP服务 · Go教程 · Go net/http X-Forwarded-For http.Request RemoteAddr Forwarded 客户端地址
Go 的 http.Request.RemoteAddr 只能表示当前 Go 服务看到的 TCP 对端;部署在反向代理后时,客户端地址通常来自代理转发头,但必须先确认代理可信。本文给出可复用的解析函数、IPv6 处理和日志边界。393 收藏 -
用 Go 的 go/parser.ParseFile 解析单文件源码,保留注释并从 ast.File 读取包名、声明和文档字段,同时说明 FileSet、语法错误与完整包分析的边界。393 收藏 -
动态轮询任务需要调整周期时,活跃的 time.Ticker 直接调用 Reset;真正暂停后恢复则重新创建 ticker。本文结合控制消息说明 Stop、Reset 与 C 通道的生命周期边界,以及如何避免重复 ticker 和错误等待。392 收藏 -
Go 1.27 扩展了泛型函数的上下文推导:当赋值目标是明确的非泛型函数类型时,可以从目标签名推导类型参数。本文用函数赋值、切片字面量、类型转换和通道发送说明可推导边界。392 收藏 -
Go bytes.Runes 会把 UTF-8 字节切片解释为 Unicode 符文并返回 []rune。本文从基础转换、长度单位、非法 UTF-8 和字符边界几个方面说明如何安全使用。392 收藏