Go 语法概览 Part 1
这篇文章是对 Go 语言的基本语法做的一个笔记。计划用三篇文章来记录,这篇主要记录 Go 的词法元素。
词法元素
Go 语言的词法元素,也叫做语言符号,分为 5 类,如下所示:
- identifier:标识符
- keyword:关键字
- literal:字面量
- delimiter:分隔符
- operator:操作符
identifier
Go 语言中的标识符可以大致分为两类,一类用以表示程序实体,作为后者的名称而存在。其可以是 Unicode 字符集中任意能表示自然语言文字的字符、数字以及下划线(_)。
Go 中的变量、常量、函数和类型声明统称为程序实体。
在 Go 中标识符的首字母的大小写控制着对应程序实体的访问权限。
- 首字母大写:对应的程序实体就可以被本代码包之外的代码访问到,既公开的。
- 首字母小写:对应的程序实体只能被本代码包的代码访问,既包级私有。
空标识符 “_“,用于变量声明或代码包的导入语句中。
1 |
|
另一类是预定义标识符,在 Go 语言的源码中被声明。分为以下几种:
- 所有基本类型的名字
- 接口类型 error
- 常量 true,false 以及 itoa
- 所有内建函数的名字,append、cap、close、complete、copy、delete、imag、len、make、new、panic、print、prinln、real、recover。
keyword
Go 的关键字可以分为三类:
- 程序声明:import 和 package
- 程序实体声明:chan、const、func、interface、map、struct、type、var
- 程序流程控制:go、select、break、case、continue、default、defer、else、fallthrough、for、goto、if、range、return、switch
使用 type 关键字可以声明一个自定义类型
1 |
|
声明的自定义类型是被声明类型的一个别名类型。例如 rune 与 int32。两者之间的转换不会产生新值。
oprator
Go 语言的操作符优先级,从高到低排列:
- *、/、%、<< 、>>、 &、 &^
- + 、- 、|、 ^
- ==、!=、<、<=、>、>=
- &&
- ||
literal
字面量:值的一种标记法。有三类:
表示基础数据类型值的字面量。如,表示浮点数类型值的 12E-3
构造自定义复合数据的类型字面量。如,
1
2
3
4type Person struct {
Name string
Age int
}表示复合数据类型的值的字面量。如,
1
Person{Name: "name", Age: 12}
Go 语法概览 Part 1
https://blog.zhangliangliang.cc/post/Go-grammar-overview-1.html