Golang
文章平均质量分 90
Golang学习笔记
Lucas小毛驴
一个热爱编程的小老弟
展开
-
接口型函数
在学习极客兔兔大佬的GeeCache时,里面提到了一个,之前在使用Go官方的http库时候也遇到过,但是并不知道他原来叫接口型函数,于是赶紧详细学习下这个接口型函数。原创 2023-07-24 16:40:14 · 177 阅读 · 0 评论 -
Go互斥锁和读写锁
sync.Mutex(互斥锁),(读写锁)原创 2023-07-24 10:43:27 · 144 阅读 · 0 评论 -
Go应用构建工具(3)--cobra
NoArgs: 如果存在任何的参数,将会报错:接受任意参数:接受至少N个参数,否则报错:接受至多N个参数,否则报错:只接收N个参数,如果个数不对,报错:参数个数在min和max之间,否则报错:如果没有一个参数是符合command的ValidArgs字段指定的参数的话,就报错;这个要配合ValidArgs使用MatchAll:这个方法可以组合上面几种验证函数,比如可以要求参数个数必须为2个,而且需要满足指定的参数},比如:err!原创 2023-01-30 15:04:01 · 1013 阅读 · 0 评论 -
Go应用构建工具(2)--viper
基本上所有的后端应用,都是需要用到配置项,可能小的项目配置项不多会选择命令行来传递,但是对于大项目来说,配置项可能会很多,全都用命令行传递那就麻烦死了,而且不好维护。所以基本上都是会选择将配置项保存在配置文件中,在程序启动时加载和解析。而Viper是Go生态中目前最受欢迎的配置相关的包,Viper能满足我们对配置的各种需求,能处理不同格式的配置文件。由上面可知,viper支持从不同的位置读取配置,但不同的位置是具有不同的优先级的,优先级高的配置会覆盖掉优先级低的相同配置,以下是优先级的排序(原创 2023-01-13 17:50:00 · 611 阅读 · 0 评论 -
Go应用构建工具(1)--pflag
也是今天学习的对象。pflag是一个用来替代Go标准库flag包的,兼容flag库,几乎不用更改就可以替换,pflag在大型项目中应用的比较广泛,比较知名的有:K8S,Docker,ETCD等。作者spf13大牛,还有其他好几个强大的开源库,包括配置神器Viper,命令行框架cobra等(这两个接下来都会学习一波)原创 2023-01-10 13:51:54 · 601 阅读 · 0 评论 -
Go优雅的进行错误处理
我们开发处理的是可恢复故障,也即是error。错误的抛出对消费方分为两种同一服务内的,可使用错误类型不同服务之间的,可使用错误标识错误信息的暴露,分为bug,内部依赖服务的错误,业务错误,远程RPC调用错误对于bug错误,直接返回错误信息对于服务内部依赖的其他服务的错误,使用Wrap包装,给自己留下堆栈信息,给消费方提供错误信息对于业务错误,看情况给予错误类型或错误标识的错误抛出。原创 2023-01-01 20:43:21 · 701 阅读 · 0 评论 -
Go错误处理实践
Go标准库中error类型是一个接口类型,在}只要实现了Error()方法的类型都可以作为error返回,它将错误消息以字符串的形式返回。原创 2023-01-01 20:42:42 · 1292 阅读 · 0 评论 -
Go基础知识总结
这种方式是将fmt包中的所有方法全部导入到当前包中,那么fmt包中的所有方法都可以直接当成本包的方法来调用了,不用再加包名fmt(但这样本包就不能定义与fmt包所有函数的函数名相同的函数了)后,新增3个元素,加上之前的元素就总共有6个了,超过了容量4,所以这时候切片需要扩容,而扩容的机制就是原始容量的2倍,也就是在新增元素后发现超过了原始的容量的话,会自动以初始容量的2倍去扩容。,是一个空接口,根据之前对接口实现的理解,空接口里没有任何方法,那么就可以认为所有的类型其实都是实现了这个接口的,因此这个。...原创 2022-08-11 11:14:59 · 1208 阅读 · 0 评论