Go语言技术文章
-
go的并发量是很厉害的,goroutine创建的代价极小,其中一个重要的原因是因为go采用了分段栈技术,每一个goroutine只占极小的空间。与此同时,goroutine是语言层面的,减少了内核态到用户态的切485 收藏 -
基本概念 上一节提到,代码完成的标准之一还包含了单元测试,这部分也是很多开发流程中不规范的地方。写过单元测试的开发人员应该理解,单元测试最核心的价值是为了证明:为什么我写485 收藏 -
01、介绍 在 Golang 语言项目开发中,变量操作不当就会触发空指针引发程序 panic。空指针就是未分配内存的指针类型的变量,变量的值是 nil,因为操作空指针会引发 panic,所以我们在程序开发中485 收藏 -
一、Go-Excelize简介 Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。 可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档485 收藏 -
前言 本文主要给大家介绍了关于Golang实现字符串倒序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 字符串倒置如下: Hello World --> dlroW olleH 解决方案1:485 收藏 -
本文用 Go 标准库实现一个轻量令牌桶限流器,演示如何按固定速率补充令牌、限制突发请求,并把它接入 HTTP 中间件保护高频接口。484 收藏 -
本文详解在GorillaMux+mgo环境下,通过用户名精确查找并更新MongoDB中用户文档的完整实践,重点解决字段大小写不匹配、结构体映射不一致、错误处理缺失等常见陷阱。484 收藏 -
Go中可通过建造者+原型混合模式实现一次规范构建、多次低成本克隆:建造者构造初始对象,原型通过深拷贝生成隔离变体,兼顾初始化可控性与复用效率。484 收藏 -
使用Go语言结合fsnotify库可实现文件系统变更监听。首先通过goget安装fsnotify,然后编写程序监听指定目录,支持创建、写入、删除、重命名事件,程序输出对应操作日志,适用于日志监控与配置热加载等场景。484 收藏 -
开发用zap.NewDevelopment()(consoleEncoder、颜色、完整字段名),上线用zap.NewProduction()(jsonEncoder、字段压缩、采样),二者不可混用;误用会导致调试困难或日志膨胀。484 收藏 -
Go高并发本地文件I/O瓶颈主因是小块频繁系统调用和内存乱分配;应使用bufio缓存、sync.Pool复用缓冲区、流式分块读写、合理控制并发度并预分配空间。484 收藏 -
直接用bwmarrin/snowflake在K8s里会撞ID,因其默认用os.Getpid()或随机数生成nodeID,而容器重启后PID变、随机值复用,多个Pod易获相同nodeID;若时间戳与sequence再重合,必然触发重复ID。484 收藏 -
math.Abs取绝对值,丢弃符号;math.Copysign保留x的绝对值并赋予y的符号。前者用于确保非负(如距离计算),后者用于符号迁移(如向量归一化)。484 收藏 -
核心是“要不要”而非“能不能”:标准库encoding/json已足够健壮,自写反射序列化仅适用于需绕过标签规则、序列化私有字段、注入元信息或对接非标协议等特定场景。484 收藏 -
fmt.Scan/Scanf常读不全或卡住,因其以空白符分隔且跳过开头空白;读整行应优先用bufio.ReadString('\n')并trim,或用Scanln作非空校验;Scanner更简洁但需防ErrTooLong。484 收藏