基础语法
go程序代码语句一般由 关键字、常量、 变量、运算符、符号、类型、标识符等组成,以下会对部分进行简单说明。
标识符 即命名,如函数名、常量名、变量名等都是标识符,标识符由字母、数字、下划线组成,标识符不能以数字开头。(_max、main、main1都是合法的标识符命名规则;上一章中的 func main() {} 中的 main 就是标识符,func 就是go语言中的关键字,(){}括号以及花括号就是符号)
行分隔符 分号 ; 是go中的代码行分隔符,但不推荐使用,go语言中推荐使用一个语句占一行,不要使用分号进行分割。
// 不推荐 行分隔符(以下代码 两个语句使用分号分割符写成一行)
fmt.Println("输出第一句");fmt.Println("输出第二句");
// 推荐写法 一个语句占一行(以下两个语句占用两行)
fmt.Println("输出第一句")
fmt.Println("输出第二句")
关键字 即go语言中保留的关键字(标识符)(后续篇章会进行讲解)
go代码中会使用到的25个关键字:
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
另外go语言中还有36个预定义标识符:
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
append | bool | byte | cap | close | complex |
complex64 | complex128 | uint16 | copy | false | float32 |
float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new |
nil | panic | uint64 | println | real | |
recover | string | true | uint | uint8 | uintptr |
数据类型
数据有多种,比如字符、整数、小数等;而不同种类的数据,其占用系统内存的大小也不同,比如字符的数据占用8个格子,整数的数据占用4个格子,为了让程序知道我当前的数据该用8个格子还是4个格子,所以需要用数据类型来区分;如果程序中没有数据类型来区分,那程序就不知道该使用多少个格子去装数据;程序里如果定义了类型,那么就能区分什么样的数据用8个格子,什么样的数据用4个格子,这样就能节省资源,提高性能,这就是 数据类型诞生的原因。
类型
- 布尔型 值只可以是固定的 ture 或者 false,例:var b bool = true。
- 数字类型 go语言支持整数型(int)、浮点型(float32,float64)、复数,中位的运算使用补码。
- 字符串类型 字符串就是一串固定长度的字符连接起来的字符序列。Go语言的字符串是由单个字节连接起来的,字节使用 UTF-8 编码标识 Unicod 文本。
- 派生类型
(a) 指针类型(Pointer)
(b) 数组类型
© 结构化类型(Struct)
(d) Channel 类型
(e) 函数类型
(f) 切片类型
(g) 接口类型(interface)
(h) Map 类型
数字类型
- uint8 无符号 8 位整型(0 到 255)
- uint16 无符号 16 位整型(0 到 65535)
- uint32 无符号 32 位整型(0 到 4294967295)
- unint64 无符号 64 位整型(0 到 18446744073709551615)
- int8 有符号 8 位整型(-128 到 127 )
- int16 有符号 16 位整型(-32768 到 32767)
- int32 有符号 32 位整型(-2147483648 到 2147483647)
- int64 有符号 64 位整型(-9223372036854775808 到 9223372036854775807)
浮点型
- float32 IEEE-754 32位浮点型数(丢失精度问题)
- float64 IEEE-754 64位浮点型数
- complex64 32位实数和虚数
- complex128 64位实数和虚数
其他数字类型
- byte 类似 uint8
- rune 类似 int32
- uint 32或64位
- int 与uint一样大小
- uintptr 无符号整型,用于存放一个指针