Dol*_*000 19 java history naming-conventions
我在浏览Java代码约定时遇到了这个小小的问题:
声明类常量和ANSI常量的变量名称应全部为大写,并用下划线("_")分隔.(为了便于调试,应避免使用ANSI常量.)
(从这里开始.)
这个文件中提到的这些"ANSI常量"是什么?他们如何使调试更难?
该文本听起来好像在"变量声明类常量"(我将其解释为普通static final变量)和这些"ANSI常量" 之间存在二分法,但我不知道在Java中声明常量的任何方法除了让他们static final变量.
它们很可能是指ANSI C常量,定义如下
在ANSI C中,常量可以通过两种方式定义:通过#define语句并通过使用const修饰符.例如,以下两个语句是等效的:
Run Code Online (Sandbox Code Playgroud)#define LENGTH 10 /* Length of the square in inches */ const int length = 10; /* Length of the square in inches */
现在Java中显然没有C常量,因为Java不是C :-)(这不是官方编码约定中最奇怪的部分,但我离题了).
那他们为什么要编写ANSI常量呢?这很可能只是引用最终基元和不可变对象的便捷方式.请记住,在C中,a的字段const struct在初始化后无法更新,并且没有相应的Java术语表示这种"常量"(final不能很好地捕获不变性的概念).
互联网上关于什么是ANSI常量的唯一参考是在论坛中,阅读命名约定的人会问同样的问题.这个词似乎是由撰写文档的人发明的,你必须问他们的意思.
ANSI是美国的国家标准机构,例如以ASCII字符集标准和ANSI C语言标准而闻名.ANSI也是Microsoft Windows调用的基于区域ASCII的默认字符编码.作者可能是指字符串文字.
| 归档时间: |
|
| 查看次数: |
2649 次 |
| 最近记录: |