Go语言的词法单元包括标识符、关键字、字面量、分隔符、运算符及注释,它们是组成Go语言代码和程序的最基本的单位。
标识符是一种字符序列,在Go语言中可以使用字符序列,对各种变量、常量、类型、方法、函数等进行命名。标识符由若干个字母、下画线和数字组成,且第一个字符必须是字母。标识符有两种类型:自定义标识符、预定义标识符。
自定义标识符是指程序员在编程过程中自行定义的变量名、常量名、函数名等一切符合语言规范的标识符。
注意:用户自定义的标识符不应该使用语言设计者的预定义标识符,这样会导致代码语句有歧义,严重影响代码的可读性。
预定义标识符是指由程序设计者在Go语言源代码中事先声明的标识符。预定义标识符包括语言的预声明标识符,以及用于后续语言扩展的保留字等。
标识符的命名规则需要遵循以下几点:
标识符的命名还需要注意以下几点:
注意:在使用标识符之前必须进行声明,声明一个标识符就是将这个标识符与常量、类型、变量、函数或者代码包绑定在一起。在同一个代码块内标识符的名称不能重复。
关键字是指语言设计者保留的具有特定语法含义的标识符,也可以称为保留字。关键字主要用来控制程序的结构,每个关键字都代表着不同语义的语法。Go语言中的关键字一共有25个。
注意:关键字不能用作常量、变量或任何其他标识符名称,也不能再声明和关键字相同的标识符。
字面量代表着一种标记法,常用来表示一些固定值。但在Go语言中,字面量的含义有多种,既可以表示基础数据类型值的各种字面量,又可以表示程序员构造的自定义符合数据类型的类型字面量,还可以表示符合数据类型的值的符合字面量。
使用字面量时,一般使用裸字符序列来表示不同类型的值。字面量还可以被编译器直接转换为某个类型的值。
整型字面量就是使用特定的字符序列来表示具体的整型数值,它常被用于整型变量或常量的初始化
55
0550
0xHello
123456789
浮点型字面量就是使用特定的字符序列来表示一个浮点数值。浮点型字面量的表示方法有两种:数学记录法和科学计数法:
25.12
0.15
.25
.12345F+4
1.e+0
数类型字面量就是使用特定的字符序列来表示复数类型的常量值:
0i
5.e+0i
.25i
.12345F+4i
1.e+0
字符型字面量就是使用特定的字符序列来表示字符型的数值。
Go语言程序的源码通常采用UTF-8的编码方式,UTF-8的字符占用1~4B。Rune字符常量也有多种表现形式,但通常使用“' '”(单引号)将字符常量括起来:
'b'
'\t'
'\0000'
'\abc'
'\u45e3'
字符串字面量通常使用“" "”(双引号)将字符序列括起来,双引号中的内容可以是UTF-8的字符字面量,也可以是其编码值:
"\n"
"hello world!\n"
"Go语言"
分隔符主要用来分隔其他元素:
fmt
.
Println
(
"hello,world!"
)
无论哪种编程语言,程序代码都是通过语句来实现结构化的,但是Go语言不需要以分号进行结尾,结尾的工作都是由Go语言的编译器自动来完成的。
当多个语句写在同一行时,它们就必须使用“;”进行分隔,但在实际开发中不提倡这种写法。
运算符主要用于在程序运行时执行运算或逻辑操作
在Go语言中,一个表达式可以包含多个运算符。当表达式中存在多个运算符时,就会遇到优先级的问题,此时应该先处理哪个运算符由Go语言运算符的优先级来决定。
注意:在Go语言中,++和—是语句,不是表达式,没有运算符优先级之说。
注释是源代码中最重要的组成部分之一。当Go语言的编译器遇到标有注释的代码时,编译器会自动识别并跳过标有注释的代码。注释分为单行注释和多行注释。
fmt.Println("hello,world!") //单行注释
多行注释又称块注释,多行注释通常以“/*”进行开头,并以“*/”进行结尾
func main() {
/*多行注释
var stockcode = 123
var enddate = "2021-07-02"
var url ="Code=%d&endDate=%s"
var target_url = fmt.Sprintf(url, stockcode, enddate)
*/
fmt.Println(target_url)
}