Go语言技术文章
-
Go runes.ReplaceIllFormed 会将非法 UTF-8 字节替换为 U+FFFD。本文说明字节变化与无损解码的区别,给出原始副本和显示文本分离的示例,并解释批量与分块处理限制。451 收藏 -
在 Go 中嵌入 Starlark 时,load 语句由 Thread.Load 回调负责解析模块名并返回 StringDict。本文用缓存、递归线程和循环依赖处理,搭出一个可维护的模块加载器。451 收藏 -
Go groot 的 File.Close 会让文件失去 I/O 能力,但不会自动清空调用方已经保存的普通值。本文区分已解码对象、键元数据和仍依赖文件的调用,给出关闭前复制数据的写法。451 收藏 -
Go runtime.LockOSThread 只适用于依赖线程局部状态的操作系统服务或非 Go 库调用。本文说明判断条件、成对解锁、专用锁定 goroutine 以及不能恢复线程状态时的退出边界。451 收藏 -
Go httptrace.DNSDone 回调里的 Err、Addrs 和 Coalesced 分别表示什么?本文从请求上下文接入 ClientTrace,说明如何读取 DNS 阶段错误、区分最终请求错误,并处理回调并发与空地址列表。451 收藏 -
Go 的 color.RGBA 与 Color.RGBA() 都遵循预乘 Alpha 语义,透明度较低时读取到的 RGB 会随之变小。本文解释返回值、NRGBA 与 NRGBAModel 的差异,并给出 image.Image 通用读取时的选择方法。451 收藏 -
Go template.Template 看起来不生效,通常不是模板对象失效,而是 Parse、Execute、命名模板、数据字段或 FuncMap 的边界没有处理好。本文按最小代码、文件模板和并发复用逐层排查,并保留真实错误信息。451 收藏 -
使用 go/types 分析函数或方法时,可以从 types.Signature 的 Params 和 Results 两个 Tuple 逐项取出变量名与 Type;再结合 Recv、Variadic 和 TypeParams,就能导出稳定的参数与返回值类型清单。451 收藏 -
Go 的 text/tabwriter 可以把多行文本按列对齐。本文用 DiscardEmptyColumns 处理可选字段为空的场景,并说明软制表符、硬制表符、Flush 与输出边界。451 收藏 -
Golang · Go问答 | 10小时前 | 错误处理 · HTTP · 文件上传 · Go问答 · 文件上传 Go FileHeader http.Request.FormFile multipart.File ErrMissingFile
Go http.Request.FormFile 找不到指定文件字段时应识别 http.ErrMissingFile;请求格式或解析失败要保留原始错误,拿到文件后还要单独处理读取错误并及时关闭 multipart.File。451 收藏 -
从函数实参、类型约束和目标函数类型三个来源拆解 Go 泛型推导,说明无实参、冲突类型、部分参数和泛型类型实例化的边界。451 收藏 -
Go 的 maphash.Bytes 适合把字节序列映射为进程内的 uint64 分桶值,但它不是加密摘要,也不能替代原文相等判断。本文用短键索引场景说明 MakeSeed、相同 Seed、不同数据结构实例和碰撞复核之间的边界。450 收藏 -
Go 泛型调用省略类型参数时,编译器要从实参、函数签名和约束中建立类型关系。本文用可编译示例说明推断成功与失败的边界,以及何时补写显式类型参数。450 收藏 -
Go 配置文件不要直接截断原文件,推荐先在同目录临时文件中写完并同步,再用 os.Rename 替换目标文件,同时处理关闭、清理、并发和跨平台边界。450 收藏 -
围绕 database/sql Rows 生命周期,讲清 QueryContext、Next、Scan、Err、Close 的职责边界,以及空结果、NULL、提前返回和迭代错误的处理方式。450 收藏