Benchmark优化小计 参考1:https://www.cnblogs.com/yahuian/p/go-benchmark.html#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B参考2:https://blog.csdn.net/YouMing_Li/article/details/135888953。
记一个有趣的bug:panic执行时机 msg在算子不报错误的情况下不被赋值,所以这里不会打印错误日志,后面收拢了该模块的错误码,导致msg在retuen的时候被赋值,defer执行时检测到msg不为空所以出了一条错误信息。其实这并不是一个Bug,只是在收拢一个后端模块的错误日志和错误码时发现在请求成功时始终会多一条错误日志。关于defer执行时间和为什么会出现这个问题可以参考下面。
vscode,go get后import爆红却可以运行 问题描述:重启了一下vscode之后发现之前通过go get下载的第三方库在import时飘红,但是可以运行飘红发现这些包在pkg/mod目录下,虽然可以运行但是强迫症害死人终于找到了同样的问题并成功解决解法这里我直接通过vscode进入helloworld01这个文件夹,飘红消失,并可以正常运行...
设计模式汇总(未完待续)【Go基础】 package mainimport "fmt"type Fruit interface { grant() pick()}type Apple struct { name string}func (a *Apple) grant() { fmt.Println("种植", a.name, "苹果")}func (a *Apple) pick() { fmt.Println("采摘", a.name, "苹果")}type Orange struct { name
方法[Go基础] 文章目录方法普通写法值接收者和指针接收者类似手动实现深拷贝问题举例1解决方法方法调用一般调用方法值方法表达式方法个人理解:函数只是为了实现某一功能,而方法是针对某一数据结构实现特定的方法Go语言的类型方法本质上就是一个函数方法的接收者类型并非一定要是struct类型,type定义的类型别名,slice,mao,channel,func都可以struct和方法不一定要在一个文件,但要在一个包中//类型方法接收者是值类型func (t TypeName) 方法名(参数列表) (返回参数) {
类型转换【Go基础】 文章目录问题引出未命名类型命名类型注意点问题引出先看一段代码package mainimport "fmt"type Map map[string]stringtype iMap Mapfunc main() { mp := make(map[string]string, 10) var ma Map = mp fmt.Printf("ma: %v", ma) //下面的语句编译会报错 var im iMap = ma fmt.Printf("im: %v", im)