驼峰命名法和帕斯卡命名法的错误

58

我经常忘记 Camel case 和 Pascal case 的区别,所以我想也许了解一点历史背景会有所帮助。这些约定名称的起源是什么?它们的名称背后是否有一些历史故事?


6
记住这个短语 - 一个“睡着的骆驼”总是会把头“低”着。因此,第一个单词在“骆驼命名法”中使用小写。这是两种命名约定之间唯一的区别。 - RBT
9
我听到的一句话很喜欢:Pascal 是专有名词,所以第一个字母需要大写。然而,camel 不是专有名词,只是一个普通名词,所以第一个字母不需要大写。 - JamieGL
1
如果你对命名规范和历史感兴趣,可以去看看“匈牙利命名法”,只是为了好玩。 - RobS
我一直认为帕斯卡命名法是以编程语言Turbo Pascal命名的,它是我的初恋!没人提到过吗?Pascal是不区分大小写的,但PascalCase是约定俗成的。 - Aaron
6个回答

74

记住驼峰式大小写,需要考虑大写字母的形状。就像这个图中所示,它们就像骆驼的驼峰一样。

帕斯卡命名法 - 对每个单词都大写:

ThisShouldBePascalCase

驼峰命名法 - 类似于帕斯卡命名法,但第一个单词不大写:

thisShouldBeCamelCase

你可以在这里了解一些历史。

更新: 在阅读评论后更改了驼峰式大小写的图片。


9
我认为“驼峰式命名法”的图片并不实用,因为它使用了帕斯卡命名法——首字母大写。 - vastlysuperiorman
1
这个更好:https://en.wikipedia.org/wiki/Camel_case#/media/File:CamelCase.png - Jon.Mozley
虽然我知道这种方法,但我总是记不住骆驼的头是否算作大写字母。‍♀️ - dx_over_dt

53

Pascal 是一个人名... 人名的首字母始终大写,而 "camel" 只是一个名词,因此除非出现在句首,否则始终为小写。


9
这个答案与被采纳的答案不同,因为它提供了一个完全不同的“助记符”来记住 PascalCase 和 camelCase 之间的区别。 - Cameron Bieganek
@CameronBieganek,SO是用于技术信息的,而不是助记符。 - Nick
7
OP寻求帮助记住哪个是哪个,这个答案提供了一个助记法来帮助记忆。根据此答案的点赞数量,我猜其他人也在寻找记住哪个是哪个的办法。 - Cameron Bieganek
3
同时,Stack Overflow是一个学习资源,有时候拥有多个观点和/或额外信息是很有帮助的。我相信这就是能够对一个问题添加许多答案的目的之一。 - ljleb

11

驼峰命名法 - 第一个单词的首字母小写,其余每个单词的首字母大写。

例子:

  • camelCase
  • camelCaseLetter

帕斯卡命名法 - 每个单词的首字母都应该大写。

例子:

  • PascalCase
  • PascalCaseLetter

1

Pascal Case(帕斯卡命名法):

在帕斯卡命名法中,每个单词的每个字母都应该是大写的,比如MossawarHussain。

Camel Case(驼峰命名法):

顾名思义,它遵循单词的驼峰结构,例如mossawarHussain。

区别:

帕斯卡命名法是驼峰命名法的子集。帕斯卡命名法的第一个字母是大写的,而驼峰命名法的第一个字母是小写的,这是这两种命名法之间的主要区别。


所以如果帕斯卡命名法是驼峰命名法的子集,那么帕斯卡命名法也是驼峰命名法,对吧?例如,VariableName 是用帕斯卡命名法书写的,但它也是用驼峰命名法书写的。我说得对吗? - Rustem Zinnatullin
我相信作者的意思是,使用camelCase符号,如果你去掉首字母小写字母,你就得到了一个PascalCase单词(就像如果你把驼峰式命名“someVeryLongSymbol”中的“some”去掉,你就得到了帕斯卡式命名的“VeryLongSymbol”)。实际上,camelCase不等于PascalCase,而PascalCase也不等于camelCase - ljleb
PascalCase集合设置为camelCase集合的子集(或真子集⊆) (PascalCase ⊂ camelCase) 意味着PascalCase的每个成员也是camelCase的成员,但它们的交集为空集(∅)。同样,camelCase不是PascalCase的子集(⊂),因为这两个集合的交集也是空集(∅)。 - Steven the Easily Amused

0
在驼峰命名法中,第一个单词的首字母应该小写,其余每个单词的首字母应该大写。
例如: userName userFullName 在帕斯卡命名法中,每个单词的首字母都应该大写。
例如: UserName UserFullName

0

那个Python PEP参考文献将PascalCase称为“camelCase”,并将camelCase称为“mixedCase”,这是一个例子,说明不要相信互联网上的所有内容 - 即使是自称权威的来源也不一定可靠。 - Steven the Easily Amused
1
@Steven the Easily Amused,"我不相信" ;-) - Tommy Gibbons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接