Go教程技术文章
-
用 cel.Variable 声明 CEL 输入变量,配合 Env.Compile 和 Env.Program 编译可复用的 Go 筛选表达式,并区分编译期与求值期错误。394 收藏 -
用 Go 的 go-diff/diffmatchpatch 从旧文本和新文本生成可保存的补丁,接收端解析后应用到基线文本,并正确处理逐项失败结果。394 收藏 -
Go strconv.ParseBool 只接受固定的 1、t、true、0、f、false 等布尔文本,yes/no、on/off 和带空格的输入需要业务层先明确处理。本文从配置、环境变量和表单输入三个场景说明如何检查 error、区分 false 与解析失败,并用适配函数扩展业务别名。394 收藏 -
Go 中 len 统计 UTF-8 字节数,utf8.RuneCountInString 统计 rune 数量。本文结合有效性检查和截断场景,说明两者结果不同的原因及选择方法。393 收藏 -
Go 的 runtime.KeepAlive 不是强制 GC,也不是替代 Close;它用于把对象的最后安全使用点明确到低层调用返回之后,避免终结器过早关闭底层句柄。本文用文件描述符和 cgo 资源说明放置位置、职责边界与生产检查项。393 收藏 -
Golang · Go教程 | 1个月前 | Go教程 · net/http · range Go http.ServeContent ETag If-None-Match 条件请求 If-Modified-Since
Go http.ServeContent 的条件请求异常,通常要从 io.ReadSeeker、modtime、ETag 和 Range 四个边界排查。本文给出原创 handler 与请求检查方法,区分 304、412、416 以及读取失败。393 收藏 -
Golang · Go教程 | 1个月前 | 性能优化 · 并发编程 · sync.Pool · 内存管理 · Go教程 · 垃圾回收 对象池 bytes.Buffer 临时对象 Go sync.Pool
sync.Pool 适合复用可随时丢弃的临时对象,不是可靠缓存或资源池。本文围绕 New、Get、Reset、Put 的借用边界,说明为什么不能依赖命中、如何避免归还后继续使用,以及怎样丢弃异常大的缓冲区。393 收藏 -
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 收藏