Go语言技术文章
-
Go OpenFile 用创建标志和八进制权限位控制新文件。本文用拒绝覆盖的完整示例解释0600、写入和关闭错误,以及已有文件、umask和Windows权限模型的差异。251 收藏 -
go install 带版本后仍调用旧工具,应分开确认版本来源、GOBIN 安装落点与 PATH 命令入口。本文说明同名文件、别名、终端环境和二进制模块信息的排查方法。251 收藏 -
Go select 可以把结果 channel 与 ctx.Done() 放在同一个等待边界里:结果先到就返回结果,超时或上游取消先到就停止等待。本文说明实现模式、竞态边界和资源清理。251 收藏 -
围绕 Go jsontext Token 读取 JSON 数字,说明 Kind 判断、Int/Uint/Float 选择、语法与范围错误、向零截断,以及 Decoder 返回 token 的 Clone 生命周期边界。251 收藏 -
Pond v2 默认会把任务 panic 捕获为错误,普通返回错误则由 SubmitErr 和 Wait 传递。本文用统一的处理函数区分两类失败,并说明任务组、取消和关闭 panic 恢复时的边界。251 收藏 -
Go Kong 可以用 env 标签指定环境变量,也可以用 DefaultEnvars 自动生成环境变量名。本文拆解默认值来源、覆盖顺序和空值边界。251 收藏 -
Go time.Time.Weekday() 返回星期值,Weekday.String() 可直接得到英文名称;如果界面需要中文,应保留星期值并在展示层显式映射。本文给出最小写法、零值与时区边界,以及 API 返回结构的选择建议。251 收藏 -
Go 的 http.Request.Cookie 查找不到目标 Cookie 时返回 http.ErrNoCookie;Cookie 存在但 Value 为空时仍会返回 Cookie 指针。本文按错误、指针和值三层说明判断顺序,并补充同名 Cookie 的处理边界。251 收藏 -
Go HTTP 客户端收到响应后如果忘记关闭 Response.Body,Transport 可能无法复用持久连接,循环请求中就会出现空闲连接变少、重复建连和资源占用升高。本文按错误分支、读到 EOF、Client/Transport 复用三个层面给出排查和修复方式。251 收藏 -
Go 自定义根证书未生效时,先核对 Client 与 Transport 的配置归属,再区分信任链和主机名错误。通过本地 HTTPS 服务与两种证书池构造最小复现,并说明 PEM 加载、连接复用和 CA 轮换的处理方法。251 收藏 -
通过 Scanner.Buffer 提高 bufio.Scanner 的单行扫描上限,并用 Bytes 复用当前缓冲,减少批处理循环中的无谓字符串分配。251 收藏 -
Go constant.Int64Val 返回 int64 数值和精确可表示标志。本文说明怎样检查 exact、处理超出 int64 的常量、区分 Unknown,并封装出不会误传未定义数值的适配函数。251 收藏 -
讲清 httputil.ReverseProxy 中入站 Host、出站 URL.Host、Out.Host 与普通请求头的区别,并给出 Rewrite、SetURL、白名单头和 SetXForwarded 的配置写法。251 收藏 -
Go 的 URL.Path 保存解码后的路径,RawPath 只是可选的原始编码提示;需要重建请求或保留 %2F 等编码差异时,应优先调用 EscapedPath、String 或 RequestURI。250 收藏 -
Go JSON 解码遇到类型不匹配时,利用 json.UnmarshalTypeError 的 Value、Type、Field 和 Offset 字段定位具体问题,区分语法错误、字段映射和部分成功结果。250 收藏