驼峰式方法名称

Posted

技术标签:

【中文标题】驼峰式方法名称【英文标题】:camel case method names 【发布时间】:2010-12-09 05:29:12 【问题描述】:

我理解变量名的驼峰式命名的原因,但我一直想知道为什么你会驼峰式命名一个方法名?为什么是 toString() 而不是 ToString()?它有什么用途?

【问题讨论】:

告诉我们你理解的“驼峰式变量名的原因”,然后也许我们可以告诉你“驼峰式命名的原因”:) 两者实际上都是驼峰式的,低位或高位。这只是一种快速识别代码中内容的约定,这样它对于必须浏览它的其他人来说确实看起来更熟悉。 我认为这是因为你可以用大写来声明类型,并用小写变量名实例化它,以避免命名冲突 - 顺便说一句,我不使用这种驼峰式命名约定,但我总是对它背后的一些理性感到好奇。 并且只是为了轻松区分什么是类型和什么是实例。 【参考方案1】:

许多约定说您将类型(类、结构、枚举等)的首字母大写,否则使用小写(函数、成员等)。

如果您遵循该约定,则只需查看MyStruct.MyType 指的是嵌套类型,MyStruct.myData 指的是某种形式的数据,MyStruct.myFunc() 指的是函数调用,就可以知道。

【讨论】:

【参考方案2】:

我们在第一个字母上使用小写以节省打印输出中的一点墨水。

【讨论】:

滑稽,但合理。全球化思维,本土化行动。赞成:)【参考方案3】:

这只是一个约定。就像所有约定一样,在其创建者的心目中,它们只是为了使代码更易于阅读和维护。

【讨论】:

另外 .NET 采用 ToString() 作为约定,而不是 toString(),这与 Java 相反。 好的,但是为什么方法名的第一个单词要小写以便于阅读呢? 有些程序员是在驼峰式的情况下长大的,他们的所有变量,即:int someInt 所以他们的方法有点自然的进展。就像有些人会声称匈牙利符号 (en.wikipedia.org/wiki/Hungarian_notation) 非常容易阅读,而其他人则不同意。这就像关于花括号是在同一行还是下一行的古老辩论:)【参考方案4】:

因为这是 Java 的原始设计者所喜欢的。

【讨论】:

因为他们更喜欢这种方式。【参考方案5】:

因为要保持一致,您必须将每个方法名称的第一个字母大写,然后您必须在一天内多次按 Shift 键。

【讨论】:

感谢您对我完全有效但略带讽刺意味的观察的匿名投票【参考方案6】:

由于驼峰式将每个单词的首字母大写以替换空格,我们面临如何区分大写标题的挑战,就像我们在英语中为专有名词所做的那样。作为对此的解决方案,驼峰式标识符中的第一个单词大写以表示标题或标识符是大写的。

在编程的情况下,对于大多数人来说,将类的名称大写而不是其方法的名称似乎是合适的。实际上,它在两者之间提供了很好的区别

多年来,编程已经演变为有很多约定,虽然很多约定非常不同,但人们倾向于达成共识。但是,您会发现“为什么问题”的答案(例如您发布的问题)并不总是植根于完全具体的事物。

【讨论】:

【参考方案7】:

我不认为有任何原因,这些只是惯例,每个人可能都有自己的。

【讨论】:

【参考方案8】:

如果你想要一个函数

write();

这比

花费更少的精力(少按一次 SHIFT 键)
Write();

但是,如果您正在写入文件,则需要区分单词。因此

writeToFile();

效率略高(并且仍然与第一个示例一致)

【讨论】:

在带有 IntelliSense 的现代 IDE 中,这不再适用。 在具有 IntelliSense 的现代 IDE 中,这可能较少是个问题。我不会完全忽略它。很多人(正确或错误)不使用 IDE(无论出于何种原因)【参考方案9】:

通常您倾向于遵循您的框架使用的那个。所以Java开发者倾向于使用小写开头,.NET开发者倾向于使用大写开头。

【讨论】:

【参考方案10】:

如果您还没有阅读过wikipedia page,它包含了您可能想知道的关于骆驼案的所有信息,包括它的历史。

CamelCase(也拼写为“camel case”) 或中间大写字母是 写复合词或短语 元素在没有的情况下连接 空格,每个元素的初始 内大写的字母 复合。

骆驼起源的一种理论 案例约定认为 C 程序员和黑客只是发现 它比标准更方便 基于下划线的样式。

C 程序员懒惰?我非常怀疑。

【讨论】:

基于下划线的样式可以追溯到不支持大小写混合的EBCDIC。变量看起来像 THIS_VARIABLE。将其切换为 ASCII,您将获得 this_variable,它更易于阅读。使用 thisVariable 更加简单,这就是我们在区分大小写的语言中所做的。有趣的是,在 SQL 等不区分大小写的语言中,找到下划线的情况并不少见。 EBCDIC 确实支持大小写混合。不过,6 位 BCD 码(通常?)全大写。【参考方案11】:

帕斯卡格 标识符中的第一个字母和每个后续连接单词的第一个字母大写。您可以将 Pascal 大小写用于三个或更多字符的标识符。 例如:背景色

大写 标识符中的所有字母都大写。仅对包含两个或更少字母或缩写的标识符使用此约定,例如 BSU 和 UCS。在下面的示例中,IO 和 UI 是大写标识符,而 System 遵循 Pascal 大写样式,因为长度大于 2。 例如:System.IO; System.Web.UI

骆驼套 标识符的第一个字母小写,每个后续连接的单词的第一个字母大写。 例如:背景色

以下链接总结了大写规则,并为您的 Web 应用程序/项目中的不同类型的标识符和项目提供了示例。希望此链接对您有所帮助

https://dotnetprod.bsu.edu/AdminConsole/Documentation/ASPDotNet/CodingStyle/NamingConventions/Capitalization.aspx

【讨论】:

【参考方案12】:

一位朋友告诉我,一项研究表明,如果 Types 是驼峰式大小写,首字母大写,变量是 done_like_this,人们可以更容易地阅读代码。它确实使类型和变量之间的区别跳出来了。

我从来不知道哪个函数名更清楚。我通常考虑将第一个字母大写,但在阅读完这篇文章后,我认为不区分类型名称和方法名称可能更具可读性(是的,在某些语言中,方法签名是一种类型,但你知道我的意思!)

【讨论】:

我总是对以“朋友说...”开头而没有引用的答案持怀疑态度。该研究的链接会很好:)

以上是关于驼峰式方法名称的主要内容,如果未能解决你的问题,请参考以下文章

python——命名规范

java中的标识符

js对象属性名驼峰式转下划线

(18)约定

驼峰命名法---2017-03-28

Java项目命名规范