在《基础篇》和《入门篇》当中,我们已经知道了Golang的基本属性、方法等知识,接下来,在本文当中就详细介绍一下Go中的一些常用操作和语法函数,包含下面几个内容。相信阅读完后续章节的朋友,就能大致对Go语言的项目开发有了一个基础的掌握。
1、分支
(1) if 语句
语法格式如下:(与java类似,区别在于它的条件不需要括号"()")
示例:
(2)switch 语句
语法格式如下:(与java类似,区别在于Go中不需要像java一样在每一个case当中显式声明break,当找到匹配项时自动跳出)
示例:
注意点:case定义的常量不可以重复,case后可以有多个常量值。另外,case中的表达式是可选的,可以省略。如果该表达式被省略,则被认为是switch true,并且每个case表达式都被计算为true,并执行相应的代码块。
(3)select 语句
select会随机执行一个可运行的case。如果没有case可运行,它将会阻塞,直到有case可运行。通常可以使用在通信之上,比如接收和发送消息,生产者与消费者的关系等等。如果有多个case都可以运行,Select会随机公平地选出一个执行。其他不会执行。记住!其它的是不会执行。
2、循环语句
Golang当中,for是唯一的循环语句,并不像java一样还有while、dowhile等语法,显得更加简单明了。
语法结构:
示例:
其中还有break、continue跳出循环语句的使用,与其它语言类似
另外,Go中还有一个 goto 语句,可以无条件地转移到过程中指定的行
3、函数
我在《入门篇》提到过一个Go语言当中必不可少的函数,就是main函数,所谓函数,就是执行特定任务的代码块,在Go中,函数定义比较有趣的一点就是,它可以有多个返回值,十分方便
(1)语法格式:
示例:(定义两个数交换的函数)
注意:上文当中出现了Go当中一个有趣的标识符,就是空白标识符"_",它的作用是可以代替任何类型的任何值。同时,它的作用还可以被当作一个占位符表示,在后续的函数方法当中不使用其值的情况下,就可以使用"_"来代替。
就像在上面的例子当中求数组[1,2,3]的和时,不需要使用索引的值,就使用了空白标识符
(2) 函数可作为变量
在Go中,函数也是一种变量,我们可以通过type来定义它,在下文介绍的结构体中实例具体阐述。
(3)可变参数
另外,Go同样支持可变参数的传递
示例:(定义一个函数,遍历并输出)
4、指针
在函数当中,我们也听说过值传递和引用传递,在Go中,引入了一个指针的概念。所谓指针,就是指变量在内存当中,是存放于一个地址上的,修改变量实际是修改变量地址处的内存。
传递指针,其实就是引用的传递,那就让我们来看看如何定义指针的吧
语法格式:
示例:
5、结构体
接口
接口,即一组方法签名,当类型为接口中定义的方法进行实现时,就可以称之为实现了一个接口。在java当中我们也有面向对象的概念,这与OOP的概念十分相似,接口指定了类型应该具有的方法,类型决定了如何实现这些方法。
语法结构:
示例:
我们知道,在java当中,有一个类叫做Object,且认为所有的类都继承实现了Object类,作为java当中的顶级存在。在Go中,虽然没有继承这一概念,但同样的,也认为任意的类型都实现了空interface(我们这样定义:interface{}),也就是包含0个method的interface。
注意点:
1、接口对象不能调用实现对象的属性
2、interface可以被任意的对象实现
3、一个对象可以实现任意多个interface
4、interface的变量可以持有任意实现该interface类型的对象
End.....