- 关键字和标识符
- 关键字
- 标识符
关键字和标识符
此篇文章将介绍Go中的关键字和标识符。
关键字
关键字是一些特殊的用来帮助编译器理解和解析源代码的单词。 截止目前(Go 1.13),Go中共有25个关键字。
break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue 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标准8.0中的Nd数字字符分类中的字符。
注意:关键字不能被用做标识符。
标识符_是一个特殊字符,它叫做空标识符。
以后,我们将知道所有的类型名、变量名、常量名、跳转标签、包名和包的引入名都必须是标识符。
一个由Unicode大写字母开头的标识符称为导出标识符。这里导出可以被理解为公开(public)。其它(即非Unicode大写字母开头的)标识符称为非导出标识符。非导出可以被理解为私有(private)。截至目前(Go 1.13),东方字符都被视为非导出字符。非导出有时候也被称为未导出。
下面是一些合法的导出标识符:
Player_9DoSomethingVERSIONĜoΠ
下面是一些合法的未导出标识符:
__statusmemStatbookπ一个类型변수エラー
下面这些不能被用做标识符:
// Unicode数字开头1233apples// 含有不符合要求的Unicode字符a.b*ptr$namea@b.c// 这两个是关键字typerange
Go语言101项目目前同时托管在Github和Gitlab上。欢迎各位在这两个项目中通过提交bug和PR的方式来改进完善Go语言101中的各篇文章。
本书微信公众号名称为"Go 101"。每个工作日此公众号将尽量发表一篇和Go语言相关的原创短文。各位如果感兴趣,可以搜索关注一下。

