Go教程技术文章
-
Go 的 multipart.Writer 默认使用随机边界。本文围绕 SetBoundary 讲清合法边界、调用时机、Content-Type 同步和 Close 收尾,给出可直接改造的上传请求示例。294 收藏 -
Go 的 os.Readlink 返回的是符号链接保存的目标字符串。本文用 filepath.IsAbs 判断相对或绝对目标,并说明相对目标为什么要以链接所在目录为基准解释。363 收藏 -
Go netip.Addr.AppendBinary 适合把 IPv4 或 IPv6 地址追加到已有字节切片。本文说明返回切片、IPv4/IPv6 长度、零值错误和协议字段边界。415 收藏 -
bytes.Buffer.Available 返回的是底层缓冲区尚未使用的容量,不是当前可读数据长度。本文结合 Len、Cap、Grow 和 AvailableBuffer,说明如何判断追加空间并安全复用缓冲区。293 收藏 -
Go crypto/x509.ParsePKIXPublicKey 面对的是 PKIX SubjectPublicKeyInfo 公钥数据。本文从 PUBLIC KEY PEM 输入出发,说明如何解码、解析并用类型分支识别 RSA、ECDSA、Ed25519、ML-DSA 与 X25519 公钥,顺带厘清它和完整证书、PKCS#1 公钥的边界。232 收藏 -
Go crypto/ecdh.PrivateKey.ECDH 使用本地私钥和对端公钥计算共享密钥,前提是两把密钥使用同一条曲线。本文用 P256 示例说明两端配对、错误处理以及共享密钥进入 KDF 或 AEAD 前的边界。266 收藏 -
用 Go 的 text/scanner.Scanner 从 UTF-8 文本中逐个读取词元,掌握 TokenText、Position、Pos、Mode、Whitespace 和错误回调的边界,适合配置文件、轻量 DSL 与源码片段的词法扫描。393 收藏 -
Go JMESPath 查询在请求路径中反复解析时,容易把表达式编译和数据搜索混在一起。本文从一次重复解析的故障症状出发,说明如何用 Compile 提前编译稳定查询,在多个 JSON 文档上复用,并处理并发安全、错误传播和动态表达式边界。309 收藏 -
Go 1.23 起可以用 maps.Keys 获取 map 的键迭代器,再用 range 或 slices.Collect 收集成切片;如果输出必须稳定,还要显式排序,因为 map 键的迭代顺序没有保证。116 收藏 -
Go 1.27 为 crypto/x509 增加 ML-DSA 证书密钥支持。本文用 PEM 证书读取示例说明如何区分证书、公钥算法、ML-DSA 参数集与证书签名算法,并解释什么时候应使用 ParsePKIXPublicKey。220 收藏 -
Go 的 Root.Readlink 正式拼写带小写 l,专门读取根目录内符号链接保存的目标文本。本文用最小示例区分读取链接、跟随链接和路径越界错误。363 收藏 -
Go 1.24 起 net/http.Protocols 可以显式启用未加密 HTTP/2。本文分别说明 Transport 与 Server 的配置位置、HTTP/1 兼容取舍和明文传输的安全边界。178 收藏 -
用 parquet-go 写 Parquet 时,先让 Go 结构体定义行 schema,再按数据量选择 WriteFile 或 GenericWriter。本文给出结构体切片写文件、分批写入 io.Writer、标签配置和失败处理的选择边界。121 收藏 -
Go crypto/mldsa 的签名输入涉及原始消息、Context、参数集和私钥种子。本文对比生成与导入密钥、普通与确定性签名,给出最小示例及输入选择表。112 收藏 -
Go 的 build.Context.MatchFile 会结合文件名和文件内容中的构建约束,判断源文件是否属于目标构建上下文。本文用 GOOS、GOARCH、CgoEnabled 和 BuildTags 说明筛选逻辑、错误处理与源码扫描写法。309 收藏