版权归原作者所有,如有侵权,请联系我们

[科普中国]-驼峰式大小写

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读,而利用驼峰命名法来表示,可以增加程序可读性。

定义驼峰式大小写(Camel-Case,Camel Case,camel case),电脑程式编写时的一套命名规则(惯例)。

当变量名和函式名称是由二个或多个单字连结在一起,而构成的唯一识别字时,利用“驼峰式大小写”来表示,可以增加变量和函式的可读性。

“驼峰式大小写(Camel-Case)一词来自 Perl 语言中普遍使用的大小写混合格式,而 Larry Wall 等人所著的畅销书《Programming Perl》(O'Reilly 出版)的封面图片正是一匹骆驼。”

“驼峰式大小写”命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。一旦选用或设定好命名规则,在程式编写时应保持一致格式。

格式单词之间不以空格、连接号或者底线连结(例如不应写成:camel case、camel-case或camel_case形式)。共有两种格式:

1、小驼峰式命名法(lower camel case):

第一个单词以小写字母开始,第二个单词的首字母大写。例如:firstName、lastName。

2、大驼峰式命名法(upper camel case):

每一个单词的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为 Pascal 命名法。

变种:StudlyCaps,是“驼峰式大小写”的变种。

补充说明,在JAVA中:类名的标识符一般用大驼峰式书写格式,方法和变量的标识符则多用小驼峰式书写格式。

传统的自然语言使用在单词组合中在日常文本的常规拼写中使用内侧大写作为惯例是很少见的,但在某些语言中使用它作为解决在组合两个单词或片段时出现的特定问题。

在意大利语中,代词可以作为动词的后缀,并且因为尊重形式的第二人称代词被大写,这可以产生一个句子,如非霍乱名称(“我没有时间回答你” - 其中Le意思是“给你”)。

在德语中,内侧大写字母I,称为Binnen-I,有时用于像StudentInnen(“学生”)这样的单词,表示Studenten(“男学生”)和Studentinnen(“女学生”)同时是有意的。但是,中间词的大小写不符合德语拼写法;上一个例子可以使用括号正确写成Student(inn)en,类似于英语中的“congress(wo)man”。

在爱尔兰语中,当将一个屈折前缀附加到专有名词时使用camelcase,例如来自Gaillimh(“Galway”)的i nGaillimh(“戈尔韦”中);来自Albanach(“苏格兰人”)的tAlbanach(“苏格兰人”);从Éire(“爱尔兰”)去hÉirinn(“来到爱尔兰”)。在最近的Scots Gaelic拼写法中,插入了一个连字符:t-Albannach。

该惯例也被几种书面的班图语言(例如,kiSwahili,“斯瓦希里语”; isiZulu,“祖鲁语”)和墨西哥的几种土着语言(例如Nahuatl,Totonacan,Mixe-Zoque和一些Oto-Manguean语言)使用。

在荷兰语中,当使用有向图ij时,字母I和字母J都是大写的,例如在国名IJsland中。

在英语中,内侧大写字母通常只有苏格兰语或爱尔兰语“Mac-”或“Mc-”名称,例如MacDonald,McDonald和Macdonald是同名的常见拼写变体,而在Anglo-Norman“Fitz- “名字,例如菲茨杰拉德和菲茨杰拉德都被发现。

在1906年首次出版的英国风格指南The King's English中,HW和FG Fowler认为,内侧大写字母可以用于三连词中,连字符会引起歧义 - 他们给出的例子是KingMark(就像King Mark-like一样)和Anglo-SouthAmerican(与Anglo-South American对抗)。

在音译中在用其他脚本编写的语言的学术音译中,在类似的情况下使用内侧大写字母。例如,在音译希伯来文中,ha'Ivri的意思是“希伯来人”或“犹太人”,b'Yerushalayim的意思是“在耶路撒冷”。在像rLobsang这样的西藏专有名称中,“r”代表原始脚本中的前缀字形,用作音调标记而不是普通字母。另一个例子是tsIurku,一个拉丁语的Chechen术语,用于描述Chechenia和Ingushetia特有的中世纪防御塔的封顶石;这里的大写字母“I”表示与转录为“i”的音素不同的音素。

缩写传统上,中间大写字母用于缩写,以反映单词在完整写出时所具有的大写字母,例如学术博士或博士学位。在德语中,法规的名称使用嵌入式大写字母缩写,例如用于刑法的StGB(Strafgesetzbuch),用于专利法的PatG(Patentgesetz),用于联邦宪法法院的BVerfG(Bundesverfassungsgericht),或用于有限责任公司的非常普通的有限责任公司(GesellschaftmitbeschränkterHaftung)。在这种情况下,甚至可以有三个或更多“CamelCase”大写字母,例如在TzBfG for Teilzeit- und Befristungsgesetz(关于兼职和有限期限职业的法案)。在法语中,诸如OuLiPo(1960)之类的骆驼案缩略词一度受到青睐,作为初始主义的替代品。

现代技术用途的历史化学式内科资本首次系统和广泛用于技术目的是瑞典化学家Jacob Berzelius在1813年发明的化学公式的符号。为了取代化学家使用的众多命名和符号惯例,他建议指出每种化学品元素由一个或两个字母的符号组成,第一个是大写的。大写字母允许像“NaCl”这样的公式被写成没有空格,仍然可以毫不含糊地解析。

Berzelius的系统继续被使用,增加了三个字母的符号,如“Uue”,用于未经证实或未知的元素和一些常见取代基的缩写(特别是在有机化学领域,例如“Et”代表“乙基 - ”) 。这进一步扩展到描述蛋白质和其他的氨基酸序列。

早期使用商标自20世纪初以来,内侧资本偶尔被用于公司名称和产品商标,例如

Camel Cigarettes首次使用香烟中的大写字母。

DryIce公司(1925年)将固体形式的二氧化碳(CO 2)作为“干冰”销售,从而产生了它的通用名称。

CinemaScope和VistaVision,竞争对手的宽屏电影格式(1953年)。

ShopKo(1962)。

MisteRogers,加拿大版罗杰斯先生的邻居(1962年)。

AstroTurf(1967)。

ConAgra,前身为Consolidated Mills(1971)。

万事达(1968)。

电脑编程在20世纪70年代和80年代,内侧资本被用作多种编程语言中多字标识符的标准或替代命名约定。计算机编程中公约的确切起源尚未解决。 1954年的会议论文[26]偶尔非正式地将IBM的Speedcoding系统称为“SpeedCo”。 Christopher Strachey关于GPM的论文(1965),[27]显示了一个包含一些医疗资本标识符的程序,包括“NextCh”和“WriteSymbol”。

具有嵌入空格的多字描述性标识符(例如文件结尾或字符表)不能在大多数编程语言中使用,因为字之间的空格将被解析为标记之间的分隔符。在endoffile或chartable中将单词组合在一起的替代方法很难理解并且可能具有误导性;例如,chartable是一个英文单词(能够绘制图表)。

一些早期的编程语言,特别是Lisp(1958)和COBOL(1959),通过允许在复合标识符的单词之间使用连字符(“ - ”)解决了这个问题,如“END-OF-FILE”:Lisp因为它使用前缀表示法(Lisp解析器不会将符号中间的连字符视为减法运算符)和COBOL,因为它的运算符是单独的英语单词。此约定仍在这些语言中使用,并且在命令行中输入的程序名称中也很常见,如在Unix中。

然而,这种解决方案不适用于数学导向的语言,例如FORTRAN(1955)和ALGOL(1958),它使用连字符作为中缀减法运算符。这些早期语言允许标识符包含不受限制的嵌入空间,通过上下文确定标识符的结尾。由于它增加了标记化的复杂性,这种方法在后来的语言中被放弃了。 (FORTRAN最初将标识符限制为不超过六个字符,有效地防止了除了非常短的单词之外的多字标识符,例如“GO TO”=“GOTO”。)

加剧了这个问题,当时常见的穿孔卡片字符集只有大写,缺少其他特殊字符。直到20世纪60年代,ASCII字符集的广泛采用使小写字母和下划线字符普遍可用。有些语言,特别是C,迅速采用下划线作为单词分隔符,而end_of_file等标识符在C程序和库(以及受C语言影响的后续语言,如Perl和Python)中仍然普遍存在。然而,一些语言和程序员选择避免强调 - 除了其他原因,以防止混淆他们与空白 - 并采用驼峰案例。

查尔斯·西蒙尼(Charles Simonyi)于20世纪70年代在施乐帕洛阿尔托研究中心工作,后来监督微软办公室应用程序套件的创建,发明并教授匈牙利表示法的使用,其中一个版本在开头使用小写字母(大写)变量名称表示其类型。一个帐户[引证需要]声称骆驼案例风格在1978年左右开始在Xerox PARC流行,其中Mesa编程语言是为Xerox Alto计算机开发的。这台机器没有下划线键,标识符中不允许使用连字符和空格字符,因此将camel case作为可读多字名称的唯一可行方案。 PARC梅萨语言手册(1979年)包括一个编码标准,其中包含针对上下骆驼箱的特定规则,Mesa库和Alto操作系统严格遵循这些规则1。

Smalltalk语言最初是在Alto上开发的,并且在20世纪80年代早期变得非常流行,可能[根据谁?]有助于在PARC之外传播风格。对于PostScript页面描述语言(由Adobe Systems创始人和前PARC科学家John Warnock发明)以及语言本身,许多名称也使用Camel案例。此外,帕斯卡的发明者尼克劳斯·沃斯(Niklaus Wirth)在PARC休假期间开始欣赏骆驼案,并将其用于下一代编程语言Modula。

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所