[译] part 20: golang 并发介绍
Go 是一种并发语言,而不是并行语言。在讨论如何在 Go 中处理并发之前,我们必须首先了解什么是并发以及它与并行性的不同之处。 并发是指有处理多个事情的能力,用一个例子来解释。 可以比做一个人慢跑。在他早晨慢跑时,发现鞋带已经松了。然后,这个人停止了跑步,绑鞋带,然后又开始跑步…
[译] part 29: golang defer
在存在defer语句的函数返回之前,会执行defer的调用。定义可能看起来有点难懂,但通过示例来理解它非常简单。 以上是一个简单的程序,用于查找给定切片最大的数。largest函数将int切片作为参数,并输出该切片的最大数。largest函数的第一行包含语句defer fini…
[译] Part 31: golang 中的自定义 error
在上一个教程中,我们学习了在 Go 语言中的error是如何表示的以及怎么用标准库处理error。我们还学习了如何从标准库中提取更多的error信息。 本教程介绍如何在我们的函数和包中使用自己定义的error,我们将使用标准库使用的相同技术来提供有关我们的自定义error的更多…
[译] Part 30: golang 中的 error 处理
Error 表示程序中的异常情况。假设我们正在尝试打开文件,文件系统中不存在该文件,那么这是一种异常情况,它就代表一种error。 Go 中使用内置的error类型表示错误。 就像任何其他的内置类型,如 int,float64,... error可以存储在变量中,从函数返回等等…
[译] Part 32: golang 中的 panic 和 recover
处理Go中异常情况的惯用方法是使用errors,对于程序中出现的大多数异常情况,errors就足够了。 但是在某些情况下程序不能在异常情况下继续正常执行。在这种情况下,我们使用panic来终止程序。函数遇到panic时将会停止执行,如果有defer的话就执行defer延迟函数,…