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。
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的