随笔分类 - golang编程
摘要:WithTimeout 超时自动取消方法,当执行一个go 协程时,超时自动取消协程 package main import ( "fmt" "time" "context" ) func main() { ctx, _ := context.WithTimeout(context.Backgroun
阅读全文
摘要:一个小玩意,main goroutine将计算菲波那契数列的第45个元素值。由于计算函数使用低效的递归,所以会运行相当长时间,在此期间我们想让用户看到一个可见的标识来表明程序依然在正常运行,所以来做一个动画的小图标: package main import ( "fmt" "time" ) func
阅读全文
摘要:一个小玩意,下面的程序会进行火箭发射似的倒计时。time.Tick函数返回一个channel,程序会周期性地像一个节拍器一样向这个channel发送事件。每一个事件的值是一个时间戳,不过更有意思的是其传递方式。
阅读全文
摘要:堆与栈 编译器会自动选择在栈上还是在堆上分配局部变量的存储空间,但可能令人惊讶的是,这个选择并不是由用var还是new声明变量的方式决定的。在Go语言规范中甚至故意没有讲到栈和堆的概念。我们无法知道函数参数或局部变量到底是保存在栈中还是堆中,编译器和运行时会帮我们搞定这个变量是在;同样不要假设变量在
阅读全文