golang
已收录文章:12520篇
-
享元模式在Golang中通过共享对象减少内存占用并提升性能,其核心在于区分内部状态与外部状态。1.内部状态不可变且可共享,外部状态动态传入;2.通过定义接口、实现具体享元、创建享元工厂管理对象池来实现;3.并发环境下可通过锁、读写锁或sync.Map确保线程安全;4.共享策略应根据粒度、创建成本、状态管理等因素权衡;5.实际应用包括strings.Builder、数据库连接池及图像处理库等。493 收藏
-
设计全局错误处理器是为了统一错误格式、自动记录日志、提供恢复机制并避免重复代码。1.定义标准错误结构体AppError,包含Code、Message和Err字段,并实现Error()方法以符合error接口。2.在Web应用中使用中间件捕获HTTP请求中的错误,通过deferrecover处理panic,并统一返回JSON格式错误。3.在非HTTP场景下通过封装主函数逻辑或wrapper函数处理错误,结合recover和sync.WaitGroup确保程序稳定性。关键点包括恢复panic、明确错误类型、记493 收藏
-
go fmt 命令主要是用来帮你格式化所写好的代码文件【很多第三方集成软件都是使用了go fmt命令】 一、使用: go fmt <文件名>.go 使用go fmt命令,更多时候是用gofmt,而且需要参数 -w,否则格492 收藏
-
golang1.16也在今天正式发布了。 原定计划是2月1号年前发布的,不过迟到也是golang的老传统了,正好也趁着最后的假期快速预览一下golang1.16的新特性吧。 语言內建的资源嵌入支持 之前市面上已492 收藏
-
Go的error比较灵活.但是自身对error处理的机制有不太好用,我们可以自定义错误输出: 只要所有实现了Error()方法的对象都可以, 这里给个比较简单的demo,后续整理一个error的优化封装: package main impo492 收藏
-
time 包为我们提供了一个数据类型 time.Time(作为值使用)以及显示和测量时间和日期的功能函数。当前时间可以使用 time.Now() 获取,或者使用 t.Day()、t.Minute() 等等来获取时间的一部分;甚至可492 收藏