Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。
Boo's Blog
Stay foolish, Stay hungry
Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。
Go语言之禅
使用 Golang 时,经常需要创建结构体,而结构体经常需要被序列化或者反序列化,通常会在结构体的 field 类型后加上 json 结构体标签。
Go 语言标准命令详解。
channel 是否有缓冲带,其行为会有一些不同。理解这个差异对决定到底应该使不使用缓冲带很有帮助。
Go 语言学习零散笔记整理。
这篇笔记主要用来介绍 Go 的sync 包的 WaitGroup 类型,它也是并发编程中,经常被用到的一个同步工具。
这篇笔记主要来介绍 Go 的并发编程相关的核心知识——竞态条件、临界区、同步工具以及死锁。
通过前面的笔记,了解到了 Go 的同步工具——互斥锁的相关知识。
通过对互斥锁的合理使用,可以使一个 goroutine 在执行临界区中的代码时,不被其他的 goroutine 打扰(保证临界区中代码的串行执行)。不过,虽然不会被打扰,但是它仍然可能会被中断(interruption)。
如果 main goroutine 退出了,那么也意味着整个应用程序的退出。
此外,还要注意的是,goroutine 执行的函数或方法即便有返回值,Go 也会忽略这些返回值。所以,如果要获取 goroutine 执行后的返回值,需要另行考虑其他方法,比如通过 goroutine 间的通信来实现。
1 / 4