golang
主要分享自己在使用golang的一些心得
各种装逼各种吹
成都的一名默默无名的go浪程序员
展开
-
golang 一题彻底理解defer
请先思考,再看答案答案是xxx,原因是,在return的执行过程中,会先赋值给返回值,再return,而defer的具体执行时间在这两者之间i := 1result = iresult++ // defer 的执行时间return很多人对defer的理解,是defer在函数完成后执行,要得出这题的答案,必须明确的知道具体的执行时间...原创 2021-01-20 14:24:28 · 159 阅读 · 0 评论 -
go context的使用 超时控制 实例
概述context不管大佬们怎么评价,它都是go语言的精髓所在,是一定要学会的使用用在并发时,管控生命周期的;通俗点说,就是goroutine的时候使用实际例子需求:我是一个内容网站,通过getContent方法,我获取内容推荐给用户,但是如果推荐服务超时了(不管因为什么),我就返回给用户最热的10条新闻,而不是直接返回504package mainimport ( "context" "fmt" "time")// 这个方法的目的是,控制子调用的超时,因为整个getConten原创 2021-01-14 11:31:33 · 785 阅读 · 1 评论 -
go interface 坑 (判空)
interface 本质interface 实际上是有两个字段组成,一个是类型,是一个值,在判空时,只有同时是nil,才能得到true实际案例在doSomething中,err是等于空的,但是传递给error这个接口后,确又不等于空了,因为虽然它的值是空的,但是它的类型,是myError运行结果...原创 2021-01-13 16:45:02 · 968 阅读 · 0 评论 -
golang proto import 路径问题 和 google protobuf
背景记录使用proto做gprc接口的几个小坑,基于goland ideimport写proto时,有时候需要引入其它proto,之后会发现goland提示import路径不存在注意,这里只是goland插件提示而已,与实际生成无关,只需要在插件路径中,加入你proto的路径即可而在实际生成pb文件时,只需要在命令中,通过-I加入关联的目录即可protoc --go_out=plugins=grpc:. -I=${GOPATH}/src -I=. *.protogoogle protob原创 2021-01-13 15:59:15 · 8153 阅读 · 1 评论 -
golang 读取excel(xlsx文件) 时间格式解析
问题起源最近在写一个读取xlsx文件,并解析其中数据的项目,在所有的数据都就绪之后,却遇到了时间格式获取不正确的问题时间格式我查询到的结果我的代码func main() { f, err := excelize.OpenFile("./template.xlsx") if err != nil { log.Fatal(err) } rows := f.GetRows("Sheet1") for _, row := range rows { fm原创 2020-10-29 20:47:22 · 3685 阅读 · 0 评论