关键字和标识符
关键字
关键字是一些特殊的用来帮助编译器理解和解析源码的单词。
截止目前(Go1.13),Go中共有25个关键字
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
这些关键字可以分为四组:
const
、func
、import
、package
、type
和var
用来声明各种代码元素。chan
、interface
、map
和struct
用做一些组合类型的字面表示中break
、case
、continue
、default
、else
、fallthrough
、for
、goto
、if
、range
、return
、select
和switch
用在流程控制语句中。defer
和go
也可以看作是流程控制关键字,但它们也有一些特殊的作用
标识符
一个标识符是一个以Unicode字母或者_
开头并且完全由Unicode字母和Unicode数字组成的单词。
- Unicode字母是定义在Unicode标准8.0中的Lu、Ll、Lt、Lm和Lo分类中的字符
- Unicode数字是定义在Unicode标准中的Nd数字字符分类中的字符
- 注意:关键字不能被用作标识符
- 标识符
_
是一个特殊字符,它叫做空标识符
以后,我们将知道所有的类型名、、变量名、常量名、跳转标签、包名和包的引入名都必须是标识符。
一个由Unicode大写字母
开头的标识符称为导出标识符。这里导出可以被理解为公开。其它(即非Unicode大写字母开头的)标识符称为非导出标识符。非导出可以被理解为私有。截至目前(Go1.13),东方字符
都被视为非导出字符。非导出有时候也被称为未导出。
下面是一些合法的导出标识符:
Player_9
DoSomething
VERSION
Ĝo
Π
下面是一些合法的未导出标识符:
_
_status
memStat
book
π
一个类型
변수
エラー
下面这些不能被用做标识符:
// Unicode数字开头
123
3apples
// 含有不符合要求的Unicode字符
a.b
*ptr
$name
a@b.c
// 这两个关键字
type
range