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{ |