为什么所有用户定义的标识符都以大写字母开头?
Why do all user-defined identifiers start with an uppercase letter?
在我所知道的所有 Ada 源代码中,包括标准库(抱歉,我不知道在网上哪里可以找到它)或 Small game implementation,所有非保留词都以大写字母开头。 (最后,堆栈,索引,...)
并且因为所有保留关键字都被编辑器突出显示,所以我 guess/hope 它不是用于区分用户定义的标识符。
在Python、C++或Java中,大写字母通常用于某些事物(类标识符和常量,通常),以允许它们被人类快速识别读者。 (案例给出有关含义的信息)
为什么 "official" Ada 代码以不同的方式执行此操作?为什么不对类型、模块之类的东西使用大写的 f?
是不是因为字母大小写的信息被认为是坏事?
如果是,为什么?
标准库在 ARM 的附件 A 中,位于 AdaIC.org。
Ada 不区分大小写,因此在区分大小写的语言中使用大写是根本不可能的。
之所以选择使用首字母大写以及下划线来分隔标识符的各个部分 (Some_Useful_Name
),是因为这样可以提高可读性。 Ada 有一个明确的设计目标,即强调易读性优于易写性。
几乎所有内容都已告知,但我只想给您两个链接:
- 即使没有什么强制性的,Ada Quality and Style Guide 也可以为您提供有关通常的 Ada 编码风格的解释
- 如果您使用的是 Gnat,您还可以检查选项以检查编码风格(参见 gcc options)
但是编码风格只是约定俗成,即使对于 Java,Sun 约定也不同于 Google 或 Eclipse 约定。
由您(或您的公司)决定什么是最适合您的。
另一块拼图:
在 Ada 的设计中,一直强调实现的可替代性。数组可以替换为函数、带有标记记录的普通记录等。
如果对象和子程序的命名约定差异太大,那将不会很好地工作。如果一个命名的非标记类型与标记类型不同。 (出于某种原因,Object.Primitive_Operation
表示法不包括非标记类型。)
在我所知道的所有 Ada 源代码中,包括标准库(抱歉,我不知道在网上哪里可以找到它)或 Small game implementation,所有非保留词都以大写字母开头。 (最后,堆栈,索引,...)
并且因为所有保留关键字都被编辑器突出显示,所以我 guess/hope 它不是用于区分用户定义的标识符。
在Python、C++或Java中,大写字母通常用于某些事物(类标识符和常量,通常),以允许它们被人类快速识别读者。 (案例给出有关含义的信息)
为什么 "official" Ada 代码以不同的方式执行此操作?为什么不对类型、模块之类的东西使用大写的 f?
是不是因为字母大小写的信息被认为是坏事?
如果是,为什么?
标准库在 ARM 的附件 A 中,位于 AdaIC.org。
Ada 不区分大小写,因此在区分大小写的语言中使用大写是根本不可能的。
之所以选择使用首字母大写以及下划线来分隔标识符的各个部分 (Some_Useful_Name
),是因为这样可以提高可读性。 Ada 有一个明确的设计目标,即强调易读性优于易写性。
几乎所有内容都已告知,但我只想给您两个链接:
- 即使没有什么强制性的,Ada Quality and Style Guide 也可以为您提供有关通常的 Ada 编码风格的解释
- 如果您使用的是 Gnat,您还可以检查选项以检查编码风格(参见 gcc options)
但是编码风格只是约定俗成,即使对于 Java,Sun 约定也不同于 Google 或 Eclipse 约定。 由您(或您的公司)决定什么是最适合您的。
另一块拼图:
在 Ada 的设计中,一直强调实现的可替代性。数组可以替换为函数、带有标记记录的普通记录等。
如果对象和子程序的命名约定差异太大,那将不会很好地工作。如果一个命名的非标记类型与标记类型不同。 (出于某种原因,Object.Primitive_Operation
表示法不包括非标记类型。)