Go 语言入门 —— 基础语法
本文主要对于 Go 语言的类型系统、变量常量及流程控制进行介绍。
类型系统
基本数据类型
在 Go 语言中,有如下的基本数据类型:
bool:表示布尔类型,值为true或false。int8、uint8、int16、uint16、int32、uint32、int64、uint64:整数类型,最后的数字代表有多少位,以u开头的为无符号整型。int、uint、uintptr:整数类型,类型的大小由编译器决定。保证uintptr类型能够存下一个内存地址。float32、float64:浮点型。complex64、complex128:复数类型,对应的实部和虚部数据类型相同。分别为float32和float64。string:字符串类型。
另外,Go 语言中 byte 和 rune 类型分别为 uint8 和 int32 的类型别名。
类型别名
在 Go 语言中,可以通过 type 类型名 = 类型 来定义一个类型别名,这两个类型是等价的。
1 | type Id = uint64 |
变量与常量
在 Go 语言中,定义一个变量有 2 种方式。
- 使用
var关键字定义变量。 - 使用
:=运算符定义变量。
1 | var a int = 10 // 使用 var 定义变量 |
常量的定义更简单,直接使用 const 关键字即可定义常量。
1 | const d int = 40 // 使用 const 定义常量 |
流程控制
条件语句
在 Go 语言中,主要有如下几种条件语句:
if-else条件分支结构switch-case分支结构
if-else 结构与其他编程语言相类似,但是 Go 语言的条件并不需要添加括号。
1 | a := 10 |
switch-case 语句也类似,但 case 后可以紧接多个值,并且对于条件较为灵活。同时,在 switch 中不需要添加 break 语句。
1 | a := 10 |
循环语句
不同于其他编程语言,Go 语言对于循环只有 for 一个关键字。同时,Go 语言的 for 关键字十分强大,可以实现传统编程语言的 for、while 等功能。
1 | for i := 0; i < 10; i++ { |
与其他语言类似,Go 语言传统 for 循环语法中任意部分都可以省略。如下代码为等价的:
1 | for ; ; {} |
另外,Go 语言有一种 for-range 循环。其可以用于遍历容器。
如下为遍历数组的用法:
1 | arr := []int{1, 2, 3} |
遍历一个哈希表:
1 | mp := map[string]int{ |