golang
已收录文章:14427篇
-
性能监控 一、web项目(如gin中) 1.使用ginpprof import "github.com/DeanThompson/ginpprof" router := gin.Default() ginpprof.Wrap(router) 2.使用pprof 只需要在main.go中引入:_ “net/http/pprof” 访问:127.0.0.1:8080/debug188 收藏
-
之前整理过结构体和json转换的文章:GoFrame必知必会之Scan:类型转换,今天整理同样比较重要的ORM相关的文章。 gf是支持ORM原生操作的,在ORM链式操作执行不了太过于复杂的SQL操作时,可以交188 收藏
-
背景 在实现图片转码的需求时,需要支持最大 500 个图片下载后转换格式; 如果是一个一个下载后转码,耗时太长,需要使用 goroutine 实现 500 个图片并发下载后,并发转码; 但自测过程中发现188 收藏
-
答案:Go语言通过接口实现访问者模式,分离数据结构与操作。定义Element和Visitor接口,元素实现Accept方法接收访问者,访问者为每种元素提供Visit方法。具体元素如File和Folder包含Accept逻辑,Folder递归调用子元素。具体访问者如SizeVisitor统计文件大小,PrintVisitor打印层级结构。使用时创建访问者实例并调用根元素的Accept方法触发遍历。新增行为只需扩展访问者,无需修改元素类,符合开闭原则。该模式适用于树形结构,利用接口和组合弥补无继承缺陷,实现双187 收藏
-
使用bufio.Reader和Writer可减少系统调用,提升文件读写性能。创建带缓冲的读写器,配合Scanner按行处理文本,读取时用ReadString或Scanner.Scan,写入后必须调用Flush刷新缓冲区,适用于大文件或频繁IO场景。187 收藏
-
在Go中处理文件操作错误需检查每个返回的error值。打开文件时使用os.Open并判断err,若非nil则记录错误;创建或写入文件时分别对os.Create和WriteString的结果进行错误处理;通过os.IsNotExist判断文件是否存在以实现不同逻辑分支;使用filepath.Join构建跨平台路径,并结合os.Stat检查文件状态。每次操作后立即处理err,确保程序健壮性。187 收藏