这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
一、本堂课重点内容
本堂课的知识要点有哪些?
- Go语言程序结构
- Go语言标识符
- Go语言数据类型
二、详细知识点介绍
本堂课介绍了哪些知识点?
Go语言程序结构
- 一个 Go 语言程序由: 包声明模块、包导入模块、主程序模块等三大部分组成。
- 一个程序有且仅有一个
main包。 - 主函数
main为 Go 语言程序的执行入口。 main函数不带输入参数,也没有返回值,由操作系统调用。- Go 语言规定包声明中的包名必须是代码所在目录路径中的最后一级子目录名。
- Go 语言不像 C 语言那样,语句结束不需要加分号。
- Go 语言行注释由两个左斜杠
//开头,直至回车换行结束,行注释可以放在语句的后面,也可以单独占一行。 - Go 语言块注释用来注释一段文字,用法是以
/*开头,*/结束。在这两个注释符之间可以使用任何文字及符号,可以由多行文字组成。 - Go 语句的后面不能使用块注释,只能使用行注释。
Go语言标识符
-
标识符是 Go 语言编译器能够认识的语言符号,是程序员与机器交互的工具,也是程序设计的基本元素。
-
关键字也称为系统保留字,具有特定的含义,为系统专用,主要用于编程中的语句标识。
-
Go 语言关键字:
| 分类 | 关键字 | 含义 |
|---|---|---|
| 包操作 | package | 包声明 |
| import | 包导入 | |
| 实体的声明及定义 | var | 变量声明 |
| const | 常量声明 | |
| func | 函数声明 | |
| type | 类型定义 | |
| struct | 结构体类型 | |
| interface | 接口类型 | |
| map | 映射类型 | |
| chan | 通道类型 | |
| 程序流程控制 | if | 条件判断 |
| else | 条件分支 | |
| range | 迭代 | |
| for | 循环 | |
| break | 中断流程 | |
| continue | 中断当前循环并进入下一轮循环 | |
| goto | 跳转 | |
| switch | 开关语句 | |
| select | 通道选择 | |
| case | 分支选项 | |
| default | 缺省选项 | |
| fallthrough | 穿越case | |
| defer | 滞后执行 | |
| return | 函数返回 | |
| go | 创建协程 |
- 预定义标识符为 Go 语言预先定义好用途的符号, 诸如数据类型,内置函数等。
- 分隔符是用来分隔变量名、语句或者表达式等各项的符号。常用的分隔符有逗号,分号,冒号,小括号,中括号,花括号,双引号,单引号,反单引号,反斜杠,空格以及各种运算符等。
- Go 语言常用转义字符:
| 转义字符 | ASCII码值(十进制) | 含义说明 |
|---|---|---|
| \a | 007 | 响铃(BEL) |
| \b | 008 | 退格(BS) |
| \f | 012 | 换页(FF) |
| \n | 010 | 换行(LF) |
| \r | 013 | 回车(CR) |
| \t | 009 | 水平制表(HT) |
| \v | 011 | 垂直制表(VT) |
| \\ | 092 | 一个反斜线字符「\」 |
| \' | 039 | 一个单引号(撇号)字符「'」 |
| \" | 034 | 一个双引号字符「"」 |
| \? | 063 | 一个问号字符「?」 |
| \0 | 000 | 空字符(NULL) |
| \ddd | 3位八进制数 | 1-3位八进制数所代表的任意字符 |
| \xhh | 2位十六进制数 | 1-2位十六进制数所代表的任意字符 |
Go语言数据类型
- Go 语言的基本数据类型包括布尔型、整型、浮点型、字符串型等。
- 布尔型用于表示逻辑运算的结果,仅有两个值:
true和false,代表真和假。布尔型不能与其它类型相互转换,也不接受自动转换或者强制转换。 - 整型数用于表示不带小数点的数据,如:学号,身份证号码,商品编码等。整型数可以参与运算,运算结果仍是整型。如果运算结果有小数部分,则无论其大小都会直接舍去,仅保留整数部分,而不会进行四舍五入操作。
- 浮点型用于有小数的场合,由于有小数部分,特别强调精度要求。Go语言默认精度是6位小数。由于长度较大,浮点型适合于存储大数据,高精度的场合。浮点型大数据一般采用科学计数法,以小写的
e或者大写的E来表示。如1.25e-6与1.25E-6等价。由于浮点数精度较高,无法精确表示一个数,经常会有舍入截尾的情况。因此,两个浮点数进行比较的时候,千万不能用等号==,而要用>=,或<=。 - 复数型由实部和虚部组成,复数型
complex64由32位的实部与32位的虚部组成,而复数型complex128则由64位的实部与64位的虚部组成,实部和虚部的数据类型都是浮点型,遵循浮点型运算规则。实部或者虚部为0时,可以不写出来。 - 字符串型是用双引号或反单引号括起来的字符序列。Go语言中只有字符串型,而没有字符型,需要的时候就用
rune类型来表示单个字符,并用单引号括起来。 - 字符串分两种类型:原生型和解释型。原生型也称为非解释型,原生型字符串用
反单引号(`)括起来,输入时可以换行。不可以输入转义字符,即使输入了转义字符,编译器也不会解释该转义字符,而是把它当做两个普通字符输出。解释型字符串需用双引号括起来,必须一次性输入,不许换行。但可以插入转义字符,编译器会正常解释转义字符。 - 复合数据类型是由基础数据类型组合而成,其内存分配要复杂得多,有些还与计算机平台有关,如指针,不同的计算机平台,占用不同的字节数。
- 自定义数据类型是使用关键字 type, 以基础数据类型或复合数据类型为基础而声明的一种数据类型。