Go程序设计语言2.1 名称

第2章

The Go Programming Language

程 序 结 构

与其他编程语言一样,Go语言中的大程序都从小的基本组件构建而来:变量存储值;简单表达式通过加和减等操作合并成大的;基本类型通过数组和结构体进行聚合;表达式通过if和for等控制语句来决定执行顺序;语句被组织成函数用于隔离和复用;函数被组织成源文件和包。

上面这些内容中的大部分已在前一章介绍过,本章将更细致地讨论Go程序中的基本结构元素。示例程序有意进行了简化,这有助于聚焦于语言本身而不是复杂的算法和数据结构。

2.1 名称


Go中函数、变量、常量、类型、语句标签和包的名称遵循一个简单的规则:名称的开头是一个字母(Unicode中的字符即可)或下划线,后面可以跟任意数量的字符、数字和下划线,并区分大小写。如heapSort和Heapsort是不同的名称。

Go有25个像if和switch这样的关键字,只能用在语法允许的地方,它们不能作为名称:

 

另外,还有三十几个内置的预声明的常量、类型和函数:

 

 

这些名称不是预留的,可以在声明中使用它们。我们将在很多地方看到对其中的名称进行重声明,但是要知道这有冲突的风险。

如果一个实体在函数中声明,它只在函数局部有效。如果声明在函数外,它将对包里面的所有源文件可见。实体第一个字母的大小写决定其可见性是否跨包。如果名称以大写字母的开头,它是导出的,意味着它对包外是可见和可访问的,可以被自己包之外的其他程序所引用,像fmt包中的Printf。包名本身总是由小写字母组成。

名称本身没有长度限制,但是习惯以及Go的编程风格倾向于使用短名称,特别是作用域较小的局部变量,你更喜欢看到一个变量叫i而不是theLoopIndex。通常,名称的作用域越大,就使用越长且更有意义的名称。

风格上,当遇到由单词组合的名称时,Go程序员使用“驼峰式”的风格——更喜欢使用大写字母而不是下划线。所以标准库中的函数名采用QuoteRuneToASCII和parseRequestLine的形式,而不会采用quote_rune_to_ASCII或quote_rune_to_ASCII这样的形式。像ASCII和HTML这样的首字母缩写词通常使用相同的大小写,所以一个函数可以叫作htmlEscape、HTMLEscape或escapeHTML,但不会是escapeHtml。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值