Go教程技术文章
-
Go 的 json.Encoder 可以用 SetIndent 设置 prefix 和 indent,让后续 Encode 输出带层级缩进;本文说明最小写法、参数选择、关闭方式,以及它与 MarshalIndent 的区别。256 收藏 -
Go 的 encoding/csv 默认按逗号读取 CSV;遇到分号分隔文件,只需在第一次 Read 或 ReadAll 前设置 Reader.Comma = ';'。本文说明合法分隔符、配置时机、固定列数和错误处理边界。245 收藏 -
Go 读取 CSV 时,FieldPos 可以报告最近一条记录中字段的起始行和字节列;配合 ParseError 与字段边界检查,就能把坏行日志定位到可处理的位置。421 收藏 -
Go 的 encoding/csv.Reader 不会自动移除文件开头的 UTF-8 BOM,首个字段可能因此多出不可见字节。本文用流式包装只检查前三个字节,说明如何保留普通文件、处理短输入并继续使用字段数检查。154 收藏 -
Go sync.Map.Swap 会原子替换键对应的值,并用 loaded 返回值告诉你键此前是否存在。本文用并发状态更新场景说明如何识别首次写入,为什么不要用先 Load 再 Store 代替,以及怎样把返回值接入审计和保护逻辑。230 收藏 -
Go 查询接口的可选参数不宜隐藏在 Context 中。通过显式 Options、默认值校验和类型化追踪标识入口,划清业务输入、请求元数据与取消传播的职责边界。214 收藏 -
Go 处理超出 int64 范围的业务整数时,应使用 math/big 的 big.Int.SetString 完整解析,明确十进制与 base=0 的区别,检查失败标记并在转 int64 前确认范围。378 收藏 -
Go 解析 key=value 配置时,strings.Cut 会在第一次分隔符处分开字符串,并通过 found 区分未找到分隔符的情况。本文从具体输入出发,处理空值、多处分隔符和错误边界。494 收藏 -
Go 日志里遇到换行、制表符、引号或反斜杠时,直接打印 rune 容易让字段边界变得不可读。本文用 strconv.QuoteRune 生成稳定的单引号字符字面量,再比较 ASCII 和图形字符版本,补上无效 Unicode 码点与结构化日志的处理边界。121 收藏 -
使用 Go 标准库 net/mail 解析带显示名的单个邮箱、地址列表和 RFC 2047 编码显示名,区分 Name 与 Address,并说明语法解析和投递校验的边界。415 收藏 -
Golang · Go教程 | 2星期前 | 错误处理 · 数据库 · 事务处理 · Go教程 · 后端开发 · Go commit 事务 rollback database/sql sql.Tx BeginTx
Go database/sql 的事务关键在于把 BeginTx、事务内读写、Rollback 和 Commit 组织成清晰分支。本文用订单与库存场景说明 sql.Tx 的使用边界、提交失败处理、连接占用和落地检查。458 收藏 -
用一个小型 Go 服务说明 database/sql 连接池上限的配置方法:先按数据库额度留出余量,再设置 MaxOpenConns、MaxIdleConns 和连接生命周期,最后结合 DBStats 判断参数是否合适。223 收藏 -
围绕 Go database/sql 连接池设置 MaxOpenConns、MaxIdleConns 与生命周期参数,并用 DBStats 的等待增量判断容量不足、连接占用和归还路径问题。428 收藏 -
Go WebSocket 握手前应使用 websocket.Upgrader.CheckOrigin 精确校验 Origin。本文说明 Origin 与 Host 的边界、白名单写法、常见放行反例,以及来源校验与身份鉴权的区别。401 收藏 -
Go plugin 通过运行时 Open 和 Lookup 装载独立插件,单可执行文件则在编译期收敛部署物。本文从平台、工具链、符号契约、安全和回滚边界比较两种方案,并给出上线决策清单。476 收藏