不同语言的命名约定是否相似?如果没有,有什么区别?
答案 0 :(得分:4)
每种语言都有特定的风格。最后一个。 每个项目都采用特定的风格。至少,他们应该。这有时可能与您的语言使用的规范风格不同 - 可能基于开发者领导者的偏好。
使用哪种风格?
如果您的语言附带了一个好的标准库,请尝试采用该库中的约定。
如果您的语言有规范书(The C Programming language,The Camel Book,Programming Ruby等),请使用它。
有时候语言设计师(C#,Java想到的)实际上写了一堆指南。使用这些,特别是如果社区也采用它们。
如果您使用多种语言,请记住保持灵活性,并根据您使用的语言调整您的首选编码风格 - 在Python编码时,使用不同的样式进行C#等编码。
答案 1 :(得分:2)
正如其他人所说,情况有很多不同,但这里概述了各种语言中最常用的命名惯例:
lowercase, lowercase_with_underscores
:
通常用于局部变量和函数名称(典型的C语法)。
UPPERCASE, UPPERCASE_WITH_UNDERSCORES:
常用于永不改变的常量和变量。像BASIC这样的一些(较旧的)语言也有一个约定,用于对所有变量名称使用全部大写。
CamelCase, javaCamelCase:
通常用于函数名称和变量名称。有些仅将它用于函数,并将其与变量的小写或小写_with_underscores结合使用。当使用javaCamelCase时,它通常用于函数和变量。
这种语法对于外部API也很常见,因为这就是Win32和Java API的用法。 (即使库在内部使用不同的约定,它们通常使用函数名称的(java)CamelCase语法导出。)
prefix_CamelCase, prefix_lowercase, prefix_lowercase_with_underscores:
通常用于不支持命名空间的语言(即C)。前缀通常表示函数或变量所属的库或模块。通常保留给全局变量和全局函数。前缀也可以是大写。一些约定对内部函数和变量使用小写前缀,对导出的函数使用UPPERCASE前缀。
当然还有许多其他方法可以命名,但大多数惯例都是基于上面提到的那些或其中的一种。
顺便说一句:我故意忘记提及匈牙利语。答案 2 :(得分:1)
当然有一些共同的指导方针,但由于语言语法\设计的不同,也存在差异。
对于.NET(C#,VB等),我建议使用以下资源:
答案 3 :(得分:1)
答案 4 :(得分:1)
我认为大多数命名约定会有所不同,但开发人员,例如我将变量命名为:mulitwordVarName,但是我使用过的一些开发人员使用了类似mulitword_var_name或multiwordvarname或aj5g54ag的东西或者......我认为它真的取决于根据您的偏好。
答案 5 :(得分:0)
多年前,一位聪明的老程序员教会了我Hungarian notation的邪恶,这是一个真正的遗留系统,微软在Windows SDK中采用了它,后来在MFC中采用了它。它是围绕像C这样的松散类型语言设计的,而不是像C ++这样的强类型语言。当时我使用Borland的Turbo Pascal 1.0 for Windows编程Windows 3.0,后来成为Delphi。
无论如何,我正在制作的团队在这个时候很短的时间内制定了我们自己的标准,非常简单,适用于几乎所有语言,基于简单的前缀 -
这里强调的是范围,依靠编译器检查类型,所有你需要关心的是范围,数据所在的位置。这比令人讨厌的旧匈牙利符号有许多优点,如果你通过重构改变某些东西的类型,你就不必搜索和替换它的所有实例。
近16年后,我仍然推广使用这种做法,并发现它几乎适用于我开发的每种语言。