Golang
战神和他的文盲老父亲
保持好奇心,不断学习,追求知行合一、学以致用
展开
-
# 在Golang中实现一个基本的注册启动模块
基本思想:将某个模块的启动逻辑也封装在该模块内。需要的方法至少有:注册方法、启动方法和优雅退出。type Government interface { Register(Department) error Start() error GracefulShutdown() error}type Department interface { Name() string Start(ch chan struct{}) error Secretary}type Secretary inte原创 2021-08-02 19:21:25 · 313 阅读 · 0 评论 -
[Work in Progress]Confusing Code Examples in Golang
延迟调用协程和延迟调用的估值时刻[1]一个协程调用或者延迟调用的实参是在此调用发生时被估值的。更具体的说: 对于一个延迟函数调用,它的实参是在此调用被推入延迟调用栈的时候被估值的 对于一个协程调用,它的实参是在此协程被创建的时候估值的一个匿名函数体内的表达式是在此函数被执行的时候才会被逐个估值的,不管此函数是被普通调用还是延迟/协程调用。package mainimport "fmt"func main() { func() { for i := 0; i < 3; i+原创 2021-07-22 10:17:42 · 104 阅读 · 0 评论