Go语言技术文章
-
go fmt 命令主要是用来帮你格式化所写好的代码文件【很多第三方集成软件都是使用了go fmt命令】 一、使用: go fmt <文件名>.go 使用go fmt命令,更多时候是用gofmt,而且需要参数 -w,否则格492 收藏 -
Go 的 crypto/tls 客户端不会从 TCP 连接地址自动猜证书名称。本文说明 ServerName 为空时为何握手失败,以及域名、IP 地址和上层 HTTP 客户端应该如何配置名称校验。491 收藏 -
用 Found 区分 bytes.Cut 的分隔符缺失与空字段,附可复用 CutFields 完整示例,说明首次切分、空输入、空分隔符与返回切片共享缓冲区的处理方法。491 收藏 -
go/types.Config 本身不是需要 Close 的资源句柄。本文按一次类型检查的数据生命周期,说明怎样用堆画像定位真正长期存活的 Package、Info、FileSet、Importer 缓存或增量 Checker,并给出可回收的代码边界。491 收藏 -
Go ksuid 解析 KSUID 后,Time() 适合得到可读的生成时间,Timestamp() 保留特殊纪元下的原始整数。本文说明两者的区别、错误处理和排序边界。491 收藏 -
regexp.FindReaderIndex 返回的是 UTF-8 字节偏移,不是字符序号。本文解释中文文本中的位置差异,并给出保留原文后把字节区间换算为 rune 位置的方法。491 收藏 -
Go hash/fnv.New32a 适合为字符串或字节流生成稳定的 32 位非加密哈希。本文从最小写法出发,说明 Write、Sum32、Sum 的区别,演示分片输入,并划清 FNV-1a 与密码学哈希的使用边界。491 收藏 -
Go 1.27 允许结构体字面量直接使用有效的 promoted field selector 初始化非指针嵌入字段。本文用最小示例说明版本、指针嵌入、字段遮蔽和混用键的边界。491 收藏 -
Go slog 的 JSON 时间格式取决于字段来源、时区与布局。通过 ReplaceAttr 将内置日志时间改为 UTC 固定毫秒字符串,并区分业务时间、分组字段、零值记录及采集端类型兼容。491 收藏 -
Go 字符串转 []byte 时,普通转换会复制数据,unsafe.StringData 与 unsafe.Slice 则可能创建只读别名。本文说明别名写入、append、uintptr 中转、空字符串和长度边界的生命周期风险,并给出安全的封装与选择建议。491 收藏 -
Go POSIX 与默认正则既有语法范围差异,也有最左最先与最左最长的选择差异。本文通过原创对照示例说明 Compile、CompilePOSIX、Longest 的取舍,并提醒捕获分组和并发配置边界。491 收藏 -
Go 的 net/http/pprof 默认注册到 DefaultServeMux;业务服务使用自定义 ServeMux 时,需要显式把 Index、Handler、Profile、Symbol 和 Trace 注册到诊断 mux,再交给独立 HTTP Server。491 收藏 -
Golang · Go问答 | 1个月前 | 并发 · channel · select · goroutine · go · go并发通信 Go channel发送阻塞 channel缓冲区满 select非阻塞发送
Go channel 是否会阻塞,关键看发送时有没有匹配接收者,或有缓冲 channel 是否仍有空位。本文区分 nil、无缓冲、有缓冲和已关闭 channel,并用 select 写出可控的非阻塞发送。491 收藏 -
介绍 Go billy.Filesystem.TempFile 的创建方式,演示如何在测试中保存路径,并用 t.Cleanup 按 Close 后 Remove 的顺序可靠清理临时文件。491 收藏 -
Go pem.Decode 找到 PEM 块后会返回结束标记之后的 rest;本文用前导空白、多个块和尾部文本说明消费边界,并给出可复用的循环读取写法。491 收藏