连字符分隔的大小写是什么名称?


509

这是PascalCase: SomeSymbol

这是camelCase: someSymbol

这是snake_case: some_symbol

所以我的问题是,是否有这个被广泛接受的名字:some-symbol?通常在url中使用。


11
否。大多数语言都不允许使用此类标识符。第一个也称为Pascal案。
Cat Plus Plus


14
@CatPlusPlus Lisp使用这种情况,并且因为Google将a -视为空格,所以几乎每个SEO友好URL都使用它。
lms 2012年

4
我相信,将第一个示例命名为PascalCase更为常见。
Drew Noakes 2014年

24
@CatPlusPlus 1)URL与编程语言无关。它们是最常使用的资源编程语言之一。某些语言甚至将URL视为头等对象。在Go中,虽然不是头等舱,但URL用于导入程序包。2)破折号字符串在几种语言(LISP系列之一)中很常见,在编程中使用的辅助语言(如CSS)中也很常见。对您来说,“少数群体”是什么,这是别人日复一日地工作的语言。我们并不是所有的VB6程序员。
Hejazzman 2014年

Answers:


433

这种情况下的约定实际上并没有一个标准名称,因此应如何称呼也存在分歧。

就是说,截至2019年,有一个强有力的案例是烤肉串会获胜:

https://trends.google.com/trends/explore?date=all&q=kebab-case,spinal-case,lisp-case,dash-case,caterpillar-case

脊柱案例是遥不可及的,其他术语根本没有任何吸引力。

另外,kebab-case已进入几个javascript代码库的词典,例如:

但是,人们仍然使用其他术语。Lisp在此Wikipedia条目中描述了数十年的惯例,因此有人将其描述为lisp-case。我见过的其他一些形式包括caterpillar-casedash-casehyphen-case,但是这些都不是标准的。

因此,您的问题的答案是:不,这种情况下的约定没有一个与snake_casecamelCase类似的被广泛接受的名称。


116
链接的维基百科文章当前有一个参考,该参考链接回此堆栈溢出问题……特别是kebab-case问题。也许使用维基百科作为来源不是一个聪明的主意。
dequis

8
@BenLee我是您觉得抄袭了的人-对此表示歉意。请注意,2012年10月7日,脊柱案例/培训案例被添加到Wikipedia中,没有匿名用户从没有其他Wikipedia历史记录的IP地址进行引用。对于那些没有循环回到维基百科的术语,我找不到其他证据。另一方面,我觉得这个StackOverflow问题确实提供了证据-kebab-case有一个用户社区,该社区不依赖没有证据的Wikipedia文章中输入的内容。我希望这足以避免最初的研究费用。
罗伯特·图珀洛-施内克

7
我很想完全删除脊椎情况和Train-Case(可能是故意破坏);但也许长期以来的Wikipedia破坏行为实际上可以为其提供证据。这似乎是这里发生的事情。
罗伯特·图珀洛-施内克

11
我喜欢“ catipillar-case”,因为它被压扁然后很长,并且与动物主题保持一致
RenaissanceProgrammer

55
烤肉串的情况,因为它看起来像
字串

464

这被称为kebab-case。参见lodash docs


190
这是一个参考,使它成为官方;)
Andreas

13
这是另一个参考:github.com/qerub/camel-snake-kebab ;)
qerub 2012年

11
参考中的递归意味着它更像Lisp。
迈克尔·德拉·比塔

140
我支持此答案不是因为我认为这是正确的答案,而是因为我希望它是正确的答案。
2014年

43
我喜欢这里发生的柠檬酸。此答案链接到lodash,后者链接到Wikipedia,后者链接到此答案!
gilly3 2015年

37

有时也称为毛毛虫箱


61
毛毛虫箱比烤肉串箱更有意义,因为骆驼,蛇和毛毛虫是各种各样的生物,而烤肉串不是。
Daira Hopwood 2015年


4
由于“毛毛虫”有四个音节,而“烤肉串”,“破折号”和“连字符”有一个或两个,我认为争夺毛毛虫案是一场失败的战斗
Ninjakannon

1
“ caterpillar-case”太长而无法成为案例名称,我认为“ worm-case”将是一个更好的选择。:D
Bahattin Ungormus

5
@DairaHopwood完全同意。。Pascal也是一个活物。
nawfal


12

作为字符( - )被称为“字号”或“破折号”,似乎更自然来命名这种“ 破折号情况 ”或“ 连字符情况 ”(较不常用)。

Wikipedia中所述,也使用“ kebab-case ”。显然,(见答案),这是因为字符看起来像一个 ...它需要一些想象力,但。例如
lodash lib中使用。

最近,“ 破折号 ”被


6
如果有帮助的话,烤肉串案对烤肉串的指称要比对烤肉串的称呼更大。
阿尔珀




5

我只是说这是连字号


8
连字符可能是一个英语问题的好答案,但是对于代码而言,它不够具体。例如,kebab-case所有字母均为小写。
rybo111



2

这是最近的唱片发行。在Angular JS和Pluralsight课程以及有关angular的书籍中,到处都有文档,所有都将kebab-case称为snake-case,没有区别两者。

它的糟糕的毛毛虫外壳没有粘住,因为snake_case和毛毛虫外壳很容易记住并且实际上看起来像它们代表的内容(如果您有很好的想象力)。


1

我对ECMAScript的建议String.prototype.toKebabCase

String.prototype.toKebabCase = function () {
  return this.valueOf().replace(/-/g, ' ').split('')
    .reduce((str, char) => char.toUpperCase() === char ?
      `${str} ${char}` :
      `${str}${char}`, ''
    ).replace(/ * /g, ' ').trim().replace(/ /g, '-').toLowerCase();
}

对提案有何回应?
nxmohamad

对您的回应有任何回应吗?
Dane Brouwer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.