本文共 1818 字,大约阅读时间需要 6 分钟。
一、Token
token 是 构成源程序的基本不可再分割的单元。编译器编译源程序的第一步就是将源程序分割成一个个独立的token,这个过程叫做词法分析。
Go语言中的token可以分为 标识符、操作符和分隔符、字面常量。
那么Go语言中的token是怎么分割的呢?Go语言中的token分隔符有两类:一类是操作符,另一类是纯分隔符。
二、标识符
Go语言的标识符构成规则:开头第一个字符必须是字母或下划线,后面跟任意多个字符、数字或下划线,并且区分大小写。同时,Unicode字符也可以作为标识符的构成。
总体上分为两类:一类是程序语言设计者预留的标识符。一类是编程者自定义的标识符。要注意的是,用户自定义的标识符不能使用程序语言设计者预留的标识符。
Go语言的预声明标识符包括关键字、内置数据类型标识符、内置函数、常量值标识符和空白标识符。 用户自定义的标识符则用在包名、变量名、常量名、函数名、自定义类型名等上。
1、关键字(25个)
共有25个,按照功能可以分为三个部分:
package //定义包名称的关键字import //导入包名关键字const //常量声明关键字var //变量声明关键字func //函数定义关键字defer //延迟执行关键字go //并发语法糖关键字return //函数返回关键字
struct //定义结构类型关键字interface //定义接口类型关键字map //声明或创建map类型关键字chan //声明或创建通道类型关键字
if else // if else 语句关键字for range break continue // for 循环 使用的关键字switch select type case default fallthrough //switch 和 select 语句使用的关键字goto //goto 跳转语句关键字
2、内置数据类型标识符(20个)
一般用在变量或常量声明的时候。
整型(12个)
byte int int8 int16 int32 int64uint uint8 uint16 uint32 uint64uintptr
浮点型(2个)
float32 float64
复数型(2个)
complex64 complex128
string rune
error
bool
在声明初始化内置类型变量时,Go可以自动的进行类型推导。但是,当定义新类型或函数时,则必须显式地带上类型标识符。
3、内置函数(15个)
make new len cap append copy delete panic recover close complex real image print println
内置函数具有全局可见性,虽然都是以小写字母开头的,但是并不影响其全局可用性。
4、常量值标识符(4个)
true false //bool类型的两个常量值:真和假iota //用于连续的枚举类型的声明中nil //指针/引用型变量的默认值就是nil
5、 空白标识符(1个)
_
具有特殊含义,用来声明一个匿名的变量,也通常被用作占位符。
三、操作符和分隔符
一共47个操作符:
1、算术运算符(5个)
+ - * / %
2、位运算符(6个)
& | ^ &^ >> <<
3、赋值和赋值复合运算符(13个)
:= = += -= *= /= %= &= |= ^= &^= >>= <<=
4、比较运算符(6个)
> >= < <= == !=
5 、括号(6个)
( ) { } [ ]
6、逻辑运算符(3个)
&& || !
7 、自增自减操作符(2个)
++ --
8、其他运算符(6个)
: , ; . ... <-
注意:自增、自减操作符是语句 而不是 表达式。
转载地址:http://hkmvz.baihongyu.com/