Go教程技术文章
-
Go 统计整数二进制中 1 的数量,直接使用 math/bits 的 OnesCount 系列即可。本文按 uint、uint32、uint64 的宽度说明函数选择,演示切片汇总,并解释有符号整数转换时的补码边界。402 收藏 -
Go 的 os.ReadDir 函数会按文件名排序,而 (*os.File).ReadDir 返回目录顺序。本文用最小示例说明两者差异,并给出目录批处理和测试中保持结果稳定的写法。402 收藏 -
Go 1.27 支持具体类型声明泛型方法。给 Page[T] 增加 Map[U] 后,可把分页元素从模型类型映射为 DTO 类型,编译器负责推断与检查,同时统一保留总数、页码和页大小,并把转换错误明确返回。402 收藏 -
Go crypto/tls 用 CurveID 表示密钥交换组,CurvePreferences 决定显式支持范围。本文说明传统组、X25519 与混合后量子组的配置边界,并给出握手结果检查清单。402 收藏 -
Golang · Go教程 | 1星期前 | 并发 · go · 连接池 · net/http · HTTP客户端 · Go HTTP客户端 连接池 http.Transport Transport.Clone
Go 的 http.Transport.Clone 可以深拷贝导出配置字段,适合从一份基础 Transport 派生出连接池参数互不覆盖的客户端。本文区分配置快照、函数回调与运行时连接池,并给出可复用的隔离写法。402 收藏 -
Go runtime/trace 通过 NewTask 返回的 context 关联各阶段 WithRegion。原创示例说明跨 goroutine 传递、等待子任务、采集命令及墙钟区间与 CPU 时间的阅读边界。402 收藏 -
Go 里可以用带缓冲 channel 做轻量 semaphore,把令牌容量当作 goroutine 并发上限,再用 defer 归还令牌避免提前返回造成泄漏。本文从批量任务小项目出发,整理阻塞获取、可取消获取和 WaitGroup 收尾的写法。402 收藏 -
Go slog 通过 HandlerOptions 的 AddSource 把日志调用位置加入 TextHandler 或 JSONHandler 输出,本文说明 source 的生成、包装影响与生产取舍。402 收藏 -
Golang · Go教程 | 4天前 | 反射 · reflect · 标准库 · Go教程 · Go 反射 MapIter MapRange reflect.Value.SetIterValue map迭代
Go 反射遍历 map 时,可以用 reflect.Value.SetIterValue 把 MapIter 当前条目的值写入一个可写 Value。本文从目标 Value 的创建、MapRange 遍历到可赋值与 CanSet 边界,给出完整示例和选择建议。402 收藏 -
用同一段 Go 示例验证 fmt.Appendf 的追加语义、容量增长与格式占位符边界,给需要构造日志或协议字节流的代码一个可复用的写法。401 收藏 -
Go 处理带 BOM 的 UTF-16 文件时,可以用 golang.org/x/text 的 unicode 与 transform 按 BOM 识别大小端,再流式写出 UTF-8。本文给出临时文件替换方案,并说明缺少 BOM、乱码和并发写入的边界。401 收藏 -
解释 Go http.Cookie 同时设置 MaxAge 与 Expires 时的序列化结果、浏览器优先级,以及持久化、会话和删除 Cookie 的配置排查方法。401 收藏 -
filepath.WalkDir 的回调参数是 fs.DirEntry,不是旧版 Walk 的 fs.FileInfo。本文说明 Type、IsDir 和 Info 的区别,演示如何判断目录、普通文件、特殊文件与符号链接,并处理 Info 失败和遍历错误。401 收藏 -
Go 的 encoding/csv 会自动忽略完全空行,但不会把只含空格的行当作空行。本文说明 Comment、TrimLeadingSpace 与 FieldsPerRecord 的取舍,并给出带错误处理的读取示例。401 收藏 -
Go WebSocket 握手前应使用 websocket.Upgrader.CheckOrigin 精确校验 Origin。本文说明 Origin 与 Host 的边界、白名单写法、常见放行反例,以及来源校验与身份鉴权的区别。401 收藏