连字符分隔的案例的名称是什么?

时间:2012-06-30 10:13:48

标签: programming-languages naming-conventions terminology

这是PascalCase:SomeSymbol

这是camelCase:someSymbol

这是snake_case:some_symbol

所以我的问题是,是否有一个被广泛接受的名称:some-symbol?它通常用于网址。

15 个答案:

答案 0 :(得分:428)

它被称为 kebab-case 。请参阅lodash docs

答案 1 :(得分:363)

这个案例约定并没有真正的标准名称,并且对它应该被称为什么存在分歧。

也就是说,截至2019年,有一个强有力的理由认为 kebab-case 获胜:

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

脊柱病例是遥远的第二位,其他任何术语都没有任何牵引力。

此外, kebab-case 已进入代码库的词典,例如: https://lodash.com/docs/#kebabCasehttps://www.npmjs.com/package/kebab-case

但是,人们仍然使用其他术语。

Lisp几十年来一直使用这种惯例,如this Wikipedia entry所述。出于这个原因,它在question on Programmers SE中被描述为 lisp-case ,与此类似。这似乎是一个原始的创造。

我见过的其他一些表单包括 caterpillar-case dash-case hyphen-case ,但这些都不是标准。

所以你的问题的答案是:不,这个案例约定没有一个被广泛接受的名称,类似于 snake_case camelCase ,它们广泛存在-accepted。

答案 2 :(得分:36)

它有时也被称为caterpillar-case

答案 3 :(得分:12)

在此处添加正确的链接Kebab Case

全部小写,分隔单词。

答案 4 :(得分:8)

我总是打电话给它,听到它被称为'dashcase。'

答案 5 :(得分:6)

由于字符( - )被称为“连字符”或“破折号”,因此将此命名为“破折号”或“连字符大小写<”似乎更为自然/ strong>“(不常使用)。

Wikipedia中所述,也使用“ kebab-case ”。显然(见answer)这是因为角色看起来像串烧 ......但它需要一些想象力。
例如,在lodash lib中使用。

最近,

使用了“破折号

答案 6 :(得分:5)

我只是说它是hyphenated

答案 7 :(得分:5)

没有标准名称。

jquerylodash等图书馆将其称为kebab-caseVuejs javascript框架也是如此。但是,我不确定在javascript世界中声明它是否被称为kebab-case是否安全。

答案 8 :(得分:2)

这是最近的一次混乱。有角度的JS和Pluralsight课程以及有角度的书籍中的文档无处不在,都将烤肉串称为蛇形案例,而不区分两者。

它太糟糕的毛虫箱没有坚持,因为蛇形箱和卡特彼勒箱很容易被记住,实际上看起来像它们所代表的(如果你有很好的想象力)。

答案 9 :(得分:2)

值得一提的是废除:

https://github.com/tpope/vim-abolish/blob/master/doc/abolish.txt#L152

破折号案例或烤肉串案例

答案 10 :(得分:2)

经过研究的完整列表:

  • 烤肉串案
  • 毛毛虫箱
  • 破折案
  • 连字号
  • Lisp案子
  • 脊椎病例
  • CSS保护套

答案 11 :(得分:1)

答案 12 :(得分:0)

我对String.prototype.toKebabCase的ECMAScript建议。

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();
}

答案 13 :(得分:0)

此大小写也可以称为“子弹”,将短语变成“子弹”的过程。

https://hexdocs.pm/slugify/Slug.html

答案 14 :(得分:0)

我一直将其称为kebab-case

有趣的是,我听到有人将所有字母大写的情况称为SCREAM-KEBAB

烤肉串警告

我一直liked kebab-case,因为当您需要空格时,它似乎最易读。但是,某些程序将破折号解释为减号,并且可能会导致问题,因为您认为名称变成了减法运算。

first-second  // first minus second?
ten-2 // ten minus two?

此外,某些框架还会分析kebab cased属性中的破折号。例如,GitHub Pages使用Jekyll,Jekyll解析其在md文件中找到的所有破折号。例如,在编译站点时,GitHub Pages上名为2020-1-2-homepage.md的文件将被放入结构为\2020\1\2\homepage.html的文件夹中。

Snake_case vs kebab-case

snake_casekebab-case E是SCREAMING_SNAKE_CAS的更安全替代方法,因为与负号相比,下划线会减少混乱。