第 4 章 流程控制方法
在上一章中,我们介绍了Go语言的词法、数据类型以及数据的使用方法,它们都是我们编写程序的根基。在本章,我们将讲述怎样编写成段的甚至是小有规模的代码。在这样的代码中,各种流程控制语句会是我们经常用到的。它们可以制造出各种条件判断、各种循环和各种流程跳转。除此之外,我们还会详细介绍Go语言中与众不同的特殊流程控制方式。
Go语言在流程控制结构方面有些像C语言,但是在很多重要方面都与C不同。Go语言在这方面的特点如下。
在Go语言中没有
do
和while
循环,只有一个更加广义的for
语句。Go语言中的
switch
语句更加灵活多变。Go语言的switch
语句还可以被用于进行类型判断。与
for
语句类似,Go语言中的if
语句和switch
语句都可以接受一个可选的初始化子语句。Go语言支持在
break
语句和continue
语句之后跟一个可选的标记(Label)语句,以标识需要终止或继续的代码块。Go语言中还有一个类似于多路转接器的
select
语句。Go语言中的
go
语句可以被用于灵活地启用Goroutine。Go语言中的
defer
语句可以使我们更加方便地执行异常捕获和资源回收任务。
另外,在这些语句的构成和语法方面,Go语言也有一些独到之处。我们会在后面一一揭晓。
与前面的章节不同,我们把本章的后面几节设置为了本章的实战环节。我们将会利用之前讲到的知识和方法去解决几个实际问题,以初步达到学有所用的目的。此外,通过对这几个实际问题的剖析和解决,我们还会得到几个在当前Go语言及其标准库中并未提供的高级数据类型(或者说高级数据结构),这会为我们今后的编程提供一定的便利。