Go语言技术文章
-
用 Python csv.QUOTE_NOTNULL 区分 None 与空字符串,掌握写入、读取、版本兼容和回退检查,避免 CSV 导入时丢失空值语义。225 收藏 -
Java HttpClient 没有直接的 multipart 表单构造器,需要自己处理 boundary、CRLF、文件段和长度。本文给出可计算长度的拼接方案,并说明大文件如何改用可重复创建的流式请求体。225 收藏 -
Go 的 io.SectionReader 可以把大文件映射成一个固定的字节窗口。本文用原创示例说明如何按偏移和长度读取、如何区分 ReadAt 与 Seek,以及短读、EOF 和边界校验怎么处理。225 收藏 -
Go 的 go、toolchain 指令和 GOTOOLCHAIN 并不是同一层配置:本文用实际选择场景拆开最低版本、建议版本、PATH 查找和自动下载的边界,帮助你稳定配置本地与 CI 工具链。225 收藏 -
Java 25 的 ScopedValue 适合在明确的动态作用域内单向传递不可变上下文;ThreadLocal 仍适合可变的线程本地状态,但在线程池任务结束时必须 remove。本文用最小代码和选择表说明两者在任务边界、嵌套绑定和子任务继承上的区别。225 收藏 -
Go select 同时命中多个 ready case 时不会按书写顺序执行,而是从可继续的通信中选择一个。本文解释 ready、default、关闭通道和优先级改写之间的边界。225 收藏 -
Golang · Go教程 | 4天前 | 切片 · unsafe · Go教程 · 内存边界 · 零拷贝 · Go 字节切片 零拷贝 unsafe.Pointer unsafe.Slice 指针生命周期
Go unsafe.Slice 可以从 *byte 指针和长度构造共享底层内存的字节切片,但不会复制、扩容或管理内存。本文说明 nil 与零长度、真实对象边界、指针生命周期和读写权限的使用契约。225 收藏 -
Golang · Go教程 | 3天前 | 文件处理 · go标准库 · Go教程 · archive/tar · 归档读取 · Go archive/tar Go tar归档头 archive/tar Reader.Next Go读取tar文件 Go解包元数据
用 archive/tar.Reader 的 Next 逐条读取 tar 归档头,解释 Header 元数据、正文读取、目录跳过以及 EOF 和不安全路径处理。225 收藏 -
Go 处理 multipart/form-data 时,不必手写字符串切割 Header。使用 Part.FormName 读取 name,使用 FileName 判断文件字段,再按场景选择 MultipartReader 或 ParseMultipartForm。225 收藏 -
context.AfterFunc 适合把取消信号转换成资源清理回调,但 Stop 返回 false 时回调可能已经启动,不能把它当成完成通知。本文从旧式 done 监听迁移到 AfterFunc,拆解取消、停止、同步和测试边界。224 收藏 -
Golang · Go问答 | 1个月前 | 标准库 · go · csv · 数据导入 · 错误定位 · Go encoding/csv FieldsPerRecord LazyQuotes ParseError
Go 导入 CSV 时,某一行多一个逗号就可能让整个读取流程报 ErrFieldCount。本文解释 FieldsPerRecord 的默认行为,给出允许可变列、保留原始行号和处理 LazyQuotes 的实战写法,避免把坏数据静默吞掉。224 收藏 -
PHP 8.4 引入 Lazy Objects,本文用 ReflectionClass::newLazyGhost() 和 newLazyProxy() 拆解延迟初始化、构造函数边界、触发时机与序列化检查,给出可回归的最小示例。224 收藏 -
进程的 rchar、wchar 很大,不代表磁盘真的读写了同样多的数据。本文用 /proc/PID/io 拆开用户态读写、实际块设备读写和取消写入,给出一套可复查的 Linux I/O 排查方法。224 收藏 -
通过文件读取和服务层包装错误的例子,拆解 Go errors.As 的目标类型匹配、%w 包装链、指针与接口边界,并给出可运行的检查方式。224 收藏 -
解释 Go 接口值为什么看起来有指针却不等于 nil,并用动态类型、返回错误和类型断言示例定位这类问题。224 收藏