随笔分类 - Golang
摘要:使用Golang编程时,一般只有在写最终的main函数时我们才有机会调用某个函数进行测试,在大型项目中如果只负责编写某个非main模块时应当如何测试函数的可用性? Golang提供了Testing模块,这个模块可以让我们随时随地进行函数功能验证。 testing - The Go Programmi
阅读全文
摘要:本文参照如下官网链接: gRPC简介:https://grpc.io/docs/what-is-grpc/introduction/ proto语法:https://developers.google.com/protocol-buffers/docs/proto3 如何使用proroc工具和相关插
阅读全文
摘要:ent快速上手一文中介绍了如何在ent框架内使用ORM思想操作数据库,本文讲述下如何在ent框架下执行裸SQL语句。 ent通过引入sql/execquery的feature flag来支持裸SQL执行,这样可以绕过繁琐的relational mapping部分。 详见:https://entgo.
阅读全文
摘要:https://entgo.io/docs/getting-started https://github.com/ent/ent ent是一款facebook开源的go语言ORM框架,类似于gorm等用于实现数据库对象映射和操作的框架。ent的不同之处在于他可以使用图模式来表达对象之间的关系,在需要
阅读全文
摘要:https://go.dev/blog/intro-generics 在《Interface简介》一文中,我使用如下代码实现了简单的Contains函数: package main import ( "fmt" ) func main() { var s []interface{} s = appe
阅读全文
摘要:GUN make文档: https://www.gnu.org/software/make/manual/make.html 以前使用make编译C++的项目是比较常见的场景,如今go也可以使用make啦。 为什么要引入make? 当我们写完一个go项目后,可以使用go build来将项目编译为可执
阅读全文
摘要:What is the difference between Builder Design pattern and Factory Design pattern? - Stack Overflow A factory is simply a wrapper function around a con
阅读全文
摘要:项目地址:spf13/cobra: A Commander for modern Go CLI interactions (github.com) 文档地址:cobra/user_guide.md at master · spf13/cobra (github.com) Overview cobra
阅读全文
摘要:go - Should I use panic or return error? - Stack Overflow 上述回答解释了panic与error的区别,一般来说panic用于会导致整个程序崩溃的错误(goroutine panic也会导致主程序panic),而error用于处理程序中可预见的
阅读全文
摘要:近日某公众号连推2篇关于context的文章,图文不符的错误多处,也不适合我理解,因此查看官方文档后总结一篇笔记。 context package - context - pkg.go.dev type Context interface { Deadline() (deadline time.Ti
阅读全文
摘要:在为某个项目添加了通过命令行获取指定配置的模块后,在一些模块内部跑test发生了如下错误: flag provided but not defined: -test.timeout 很显然,跑go test时涉及到了flag解析。 go test是以package为单位进行测试的(无论是否通过-ru
阅读全文
摘要:time package - time - pkg.go.dev 本文就不对官方文档做详细解析了,只贴一些常用的示例。如需查看官网点击上述链接即可。 一、时间的加减以及格式化示例: func main() { s := time.Now().Add(time.Hour * -2) now := fm
阅读全文
摘要:log - The Go Programming Language (golang.org) import ( "log" ) func main() { log.Print("Logging in Go!") } log模块的Fatal与Panic开头的function都会直接终止程序运行(os.
阅读全文
摘要:yaml与toml是当前流行度较高的两种配置文件类型,其解析方式也非常类似,因此本文将他们合在一起讲。 go-yaml/yaml: YAML support for the Go language. (github.com) BurntSushi/toml: TOML parser for Gola
阅读全文