Go教程技术文章
-
Go OpenFile 用创建标志和八进制权限位控制新文件。本文用拒绝覆盖的完整示例解释0600、写入和关闭错误,以及已有文件、umask和Windows权限模型的差异。251 收藏 -
Go select 可以把结果 channel 与 ctx.Done() 放在同一个等待边界里:结果先到就返回结果,超时或上游取消先到就停止等待。本文说明实现模式、竞态边界和资源清理。251 收藏 -
围绕 Go jsontext Token 读取 JSON 数字,说明 Kind 判断、Int/Uint/Float 选择、语法与范围错误、向零截断,以及 Decoder 返回 token 的 Clone 生命周期边界。251 收藏 -
Go Kong 可以用 env 标签指定环境变量,也可以用 DefaultEnvars 自动生成环境变量名。本文拆解默认值来源、覆盖顺序和空值边界。251 收藏 -
Go time.Time.Weekday() 返回星期值,Weekday.String() 可直接得到英文名称;如果界面需要中文,应保留星期值并在展示层显式映射。本文给出最小写法、零值与时区边界,以及 API 返回结构的选择建议。251 收藏 -
通过 Scanner.Buffer 提高 bufio.Scanner 的单行扫描上限,并用 Bytes 复用当前缓冲,减少批处理循环中的无谓字符串分配。251 收藏 -
Go 用 UTF32 配置小端解码器,再通过 transform.NewReader 转成 UTF-8。本文说明 IgnoreBOM、UseBOM、ExpectBOM 的区别,以及流式处理中的资源归属和部分输出。250 收藏 -
Go encoding/gob 传输接口字段时,需要用 gob.Register 注册接口里实际出现的具体类型,并在解码侧完成对应注册。本文用一个包含接口字段的消息结构体说明注册、编码、解码和常见失败边界。250 收藏 -
通过TicketID实现fmt.Formatter,复用宽度与精度,区分字符串展示和数值格式,并说明递归、Stringer优先级与采用边界。250 收藏 -
Go CookieJar 在本地 HTTP 测试中不发送 Secure Cookie,通常是 http scheme 不满足 Secure 属性。本文拆开保存、筛选与客户端注入职责,说明 HTTPS 测试和普通 HTTP 单测的选择边界。249 收藏 -
Golang · Go教程 | 3星期前 | 错误处理 · Go教程 · database/sql · Go commit 事务 rollback database/sql sql.Tx BeginTx
Go database/sql 事务最容易漏掉的是提前返回路径:某个 SQL、业务校验或 context 取消后,如果没有统一 Rollback,事务就可能长期占用连接或留下不完整的控制流。本文用 defer、panic 保护和 BeginTx context 封装一个只在成功出口 Commit 的事务 helper,并用路径指标检查覆盖范围。249 收藏 -
Go strings.Fields 会把连续的 Unicode 空白视为一个分隔边界,丢弃首尾空白并返回非空字段。本文用原创示例说明空输入、制表符、换行和 strings.Split 的选择边界。249 收藏 -
Go 的 golang.org/x/image/font/sfnt 用 Parse 解析 TTF 或 OTF 字节,再通过 Font.Name 和 NameIDFamily、NameIDSubfamily、NameIDFull 读取字体名称。本文说明名称缺失、底层数据生命周期以及 Parse 与 ParseReaderAt 的选择边界。249 收藏 -
Go 的 slices.Values 可以把已有切片适配成 iter.Seq,让代码直接用 range 逐项消费。本文说明它的顺序、空切片、自定义切片类型和底层数据边界,并比较 Values、Clone 与 Collect 的使用选择。249 收藏 -
Go bufio.Reader.Reset 会丢弃已有缓冲、重置读取状态并切换到底层 io.Reader,适合在批量处理多段输入时复用 Reader 对象。本文用字符串和文件场景说明复用方式、资源关闭责任、零值初始化、自身 Reset 以及旧缓冲数据的边界。249 收藏