Go语言技术文章
-
Go html/template 会按 HTML、属性和 URL 上下文自动转义用户值。本文用固定属性模板说明 title、data-*、href 的安全写法,解释危险协议、事件属性和 template.HTML 的信任边界。383 收藏 -
Golang · Go问答 | 1小时前 | go · HTTP客户端 · http.NewRequest · ContentLength · Go http.NewRequest ContentLength nil Body http.NoBody
Go http.NewRequest 传入 nil Body 后 ContentLength 为零是正常语义:nil 表示没有请求体,零值不能单独证明 Body 一定为空。本文对比 nil、http.NoBody、已知长度 Reader 和未知 Reader 的边界。238 收藏 -
Go 1.22 起,http.ServeMux 支持在同一模式中注册 HTTP 方法、路径和通配符。本文用用户接口示例说明 PathValue、最具体匹配、冲突 panic、405 以及旧项目兼容边界。487 收藏 -
Go httptest.NewRecorder 的 Code 并不是创建时就固定为 200。本文区分显式 WriteHeader、写正文触发的隐式 200 和完全不写响应的 0,并说明为什么应使用 Result().StatusCode 断言最终 HTTP 状态。280 收藏 -
Go 的 http.Cookie.MaxAge 设为负数会生成立即删除语义,但删除是否生效还取决于 Name、Path、Domain 是否与原 Cookie 一致。本文用响应头、代码和排查表说明 MaxAge 三种取值。217 收藏 -
Go time.ParseDuration 解析小时分钟混合值失败,通常不是小时和分钟不能组合,而是输入使用了 min、中文单位或内部空格。本文说明合法格式、错误边界与外部输入处理方式。459 收藏 -
Go time.Time 经过 JSON 序列化后,变化的通常是 Location 名称或夏令时规则,而不是时间瞬时点。本文拆解 RFC3339、偏移量和位置恢复的边界。366 收藏 -
讲清 Go http.Transport 如何使用 ProxyFromEnvironment 读取 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY,并排查内网域名、localhost、回环地址与端口匹配边界。383 收藏 -
Go 的 time.Time 比较不能只看打印出来的日期。Equal 比较时间瞬间,== 还会比较 Location 和 monotonic clock 读数。本文用跨时区、time.Now、序列化和 map 键几个场景说明迁移边界。108 收藏 -
Golang · Go教程 | 3小时前 | 超时 · HTTP · go · Context · http.Client · HTTP客户端 context.WithTimeout http.Client Go请求超时
同一个 Go http.Client 可以通过请求级 Context 为健康检查、普通查询和慢速报表设置不同超时。本文从一个请求巡检器出发,说明 Client.Timeout、context.WithTimeout、响应体关闭和连接复用的关系。496 收藏 -
Golang · Go问答 | 3小时前 | go · 浮点数 · strconv · 字符串格式化 · FormatFloat · strconv.FormatFloat Go科学计数法 Go浮点格式化
Go 中想让 float64 输出普通十进制字符串,关键是使用 strconv.FormatFloat 的 fmt='f';prec=-1 保留能精确还原的最短数字,固定小数位则传入具体精度。本文拆开说明 fmt、prec 和 bitSize 的组合边界。315 收藏 -
Go 处理大文件 multipart 上传时,不要用 io.ReadAll 把正文全部读入内存。本文用 multipart.Reader 逐个读取 Part,配合请求总量和单文件上限、临时文件改名与失败清理,完成一套可落地的流式保存写法。181 收藏 -
Go 的 strconv.Atoi 不会自动忽略首尾空白。本文说明为什么会解析失败,并给出裁剪后解析、严格拒绝和错误分类的实用写法。408 收藏 -
Go 的 url.Values 会把同名查询参数保存为字符串切片。本文用一个筛选标签示例说明 Query、Get、直接索引、Add、Set 和 Encode 的区别。115 收藏 -
Go 中 rune 是 Unicode 码点数值。想得到字符应使用 string(r),想得到十进制数字文本则使用 strconv.Itoa 或明确的格式化动词。395 收藏