- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
允许最令人震惊的命名约定禁忌的语言背后是否存在实际或历史原因?两个最明显的例子是大写的函数名和小写的类名,我经常在 stackoverflow 新手问题中看到它们被违反。
我不知道在哪里可以做这些事情,但为什么允许它们编译呢?目前,我的理论是
我找不到关于这个主题的任何内容(一些链接在下面)。
有一些约定,例如下划线开头的变量名,或匈牙利符号(后者我在评论中 personally disabused of)没有被压倒性地接受,但分歧较小。
我作为一名 Java 程序员提出这个问题,但也对其他语言的答案感兴趣。
一些链接:
最佳答案
编码风格就像写作风格。如果您写作的风格难以阅读并且不
阅读
很好,您的大脑实际上很难理解您正在阅读的内容。
但是,如果像在普通阅读文本中一样 - 它的布局与您的想法非常匹配,那么它就清晰易懂。
另一方面,如果该语言实际上强制您使用完全正确的语法编写所有内容,那么它不仅会使编码变得缓慢和笨拙,而且会限制您的表达能力。
很多年前,我遇到了一种允许您向变量名添加奇怪符号的语言。允许用户执行以下操作:
var a=b = a = b;
var c<d = c > d;
if ( a=b & c<d ) ...
即a=b
是一个完全可以接受的变量名,c<d
也是.我相信您会同意,这导致了许多解释错误。即使一种新语言允许我也不会使用它。编码标准是为了保持一致性并帮助人类理解,语法是为了帮助计算机思想理解。
关于java - 如果某些命名约定(例如大写方法名称)如此令人不悦,那么为什么语言完全允许它们呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22693967/
很抱歉新手的问题,但是: 我最近才发现“=”运算符不只是处理对象/等等。值(value),也是引用。这很酷,但我认为这对变量来说是不一样的,它不会在存储整数或 float 的变量之间创建引用。后来我觉
我是一名优秀的程序员,十分优秀!