标识符用于为几种语言对象命名,并在稍后通过名称引用这些对象。
这 11 个命名空间通过上下文和标识符的字母大小写来区分:标识符的第一个字母是否为小写(在下文中写为 lowercase-ident)或大写(写为 capitalized-ident)。对于此目的,下划线被视为小写字母。
|
另请参见以下语言扩展:扩展索引运算符.
如上所示,前缀和中缀符号以及一些关键字可以用作值名,前提是它们写在括号之间。字母大小写规则在下表中总结。
命名空间 | 第一个字母的大小写 |
值 | 小写 |
构造函数 | 大写 |
标签 | 小写 |
多态变体标签 | 大写 |
异常 | 大写 |
类型构造函数 | 小写 |
记录字段 | 小写 |
类 | 小写 |
实例变量 | 小写 |
方法 | 小写 |
模块 | 大写 |
模块类型 | 任意 |
关于多态变体标签的说明: 当前实现除了接受大写变体标签外,还接受小写变体标签,但建议您为了可移植性和与未来 OCaml 版本的兼容性而避免使用小写变体标签。
|
命名对象可以通过其名称(遵循名称的常规静态作用域规则)或访问路径 prefix . name 来引用,其中 prefix 指定一个模块,而 name 是该模块中定义的对象的名称。路径的第一个组件 prefix 可以是简单的模块名称,也可以是访问路径 name1 . name2 …,以防定义模块本身嵌套在其他模块中。为了引用类型构造函数、模块类型或类类型,prefix 也可以包含简单的函子应用(如上面的语法类别 extended-module-path 中所示),以防定义模块是函子应用的结果。
标签名、标签名、方法名和实例变量名不需要限定:前三个是全局标签,而后者是类本地。