Go 语言结构
从 Hello World 开始
Go语言的基础组成部分:
- 包声明
- 引入包
- 函数
- 变量
- 语句
- 表达式
- 注释
开始尝试输出 Hello World
在VsCode编辑器中写入以下代码
package main
import "fmt"
func main(){
fmt.Println("Hello World");
}
执行 Go 程序
打开VsCode的命令行终端,进入到hello.go所在的目录,执行命令go run hello.go来执行代码。
这是最简单的一种执行方式,我们还可以使用go build hello.go命令来生成对应的二进制文件,然后执行对应的exe文件。
Go 数据类型
mindmap
数据类型
布尔型
数字类型
整型
浮点型
字符串类型
派生类型
指针
数组
结构体
Channel
函数
切片
接口
Map
Go 变量定义
Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
声明变量的标准格式:
var identifier type
推荐使用:
identifier := value
常量定义:
const identifier [type] = value
条件语句
经典的if-else语句和switch语句以及select语句
循环语句
Go只有一种循环语句,for循环,格式和C是一样的。
控制语句
- break,经常用于中断当前 for 循环或跳出 switch 语句
- continue,跳过当前循环的剩余语句,然后继续进行下一轮循环
- goto,将控制转移到被标记的语句
数组和切片
区别: 数组是定长的,切片是不定长。切片可以动态添加元素,数组不可以。切片可以动态扩容,而数组不能。
数组
声明数组:var arrayName [size]dataType
切片(slice)
声明切片:var identifier []type
切片不需要事先说明长度
也可以使用make()函数来创建切片:
var slice []type = make([]type, len)
可以简写为:
slice := make([]type, len)
len() 和 cap() 函数
切片是可索引的,并且可以由 len() 方法获取长度。
切片提供了计算容量的方法 cap() 可以测量切片最长可以达到多少。
Map
- Map 是一种无序的键值对的集合。
- Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
- Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,遍历 Map 时返回的键值对的顺序是不确定的。
- 在获取 Map 的值时,如果键不存在,返回该类型的零值,例如 int 类型的零值是 0,string 类型的零值是 ""。
- Map 是引用类型,如果将一个 Map 传递给一个函数或赋值给另一个变量,它们都指向同一个底层数据结构,因此对 Map 的修改会影响到所有引用它的变量。
Range
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。
总结
语言都是相似的,都逃不过变量、函数、各种语句。学会一种语言的语法,再去学习其他语言就会很轻松。