此篇文章将介绍Go中的关键字和标识符。
关键字是一些特殊的用来帮助编译器理解和解析源代码的单词。
截至目前(Go 1.23),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大写字母开头的标识符称为导出标识符。 这里导出可以被理解为公开(public)。 其它(即非Unicode大写字母开头的)标识符称为非导出标识符。 非导出可以被理解为私有(private)。 截至目前(Go 1.23),东方字符都被视为非导出字符。 非导出有时候也被称为未导出。
Player_9
DoSomething
VERSION
Ĝo
Π
下面是一些合法的未导出标识符:
_
_status
memStat
book
π
一个类型
변수
エラー
下面这些不能被用做标识符:
// Unicode数字开头
123
3apples
// 含有不符合要求的Unicode字符
a.b
*ptr
$name
a@b.c
// 这两个是关键字
type
range
Go101.org网站内容包括Go编程各种相关知识(比如Go基础、Go优化、Go细节、Go实战、Go测验、Go工具等)。后续将不断有新的内容加入。敬请收藏关注期待。
本丛书微信公众号(联系方式一)名称为"Go 101"。二维码在网站首页。此公众号将时不时地发表一些Go语言相关的原创短文。各位如果感兴趣,可以搜索关注一下。
《Go语言101》系列丛书项目目前托管在Github上(联系方式二)。欢迎各位在此项目中通过提交bug和PR的方式来改进完善《Go语言101》丛书中的各篇文章。我们可以在项目目录下运行go run .
来浏览和确认各种改动。
本书的twitter帐号为@Golang_101(联系方式三)。玩推的Go友可以适当关注。
你或许对本书作者老貘开发的一些App感兴趣。
sync
标准库包sync/atomic
标准库包