Как называется случай, разделенный дефисом?


509

Это PascalCase: SomeSymbol

Это camelCase: someSymbol

Это случай змеи: some_symbol

Так мои вопросы , есть ли широко принятое название для этого: some-symbol? Обычно используется в URL.


11
Нет. Большинство языков не допускают такие идентификаторы. Также первый из них называется Pascal case.
Cat Plus Plus


14
@CatPlusPlus Lisp использует этот случай, и поскольку Google рассматривает -как пробел, почти каждый SEO-дружественный URL-адрес также использует его.
Lms

4
Я считаю, что чаще всего первый пример, который вы приводите, называется PascalCase .
Дрю Ноукс

24
@CatPlusPlus 1) URL-адреса НЕ имеют отношения к языкам программирования. Они являются одним из наиболее часто используемых языков программирования ресурсов. Некоторые языки даже рассматривают URL как объект первого класса. В Go, хотя это и не первый класс, URL-адреса используются для импорта пакетов. 2) Строка с разделительной чертой довольно распространена в нескольких языках (например, в семействе LISP), а также в тревожных языках, используемых в программировании, таких как CSS. Что для вас «меньшинство», это язык, на котором другие работают день ото дня. Мы не все программисты VB6.
Hejazzman

Ответы:


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 использовал это соглашение в течение десятилетий, как описано в этой записи в Википедии , поэтому некоторые люди описали его как случай с lisp . Некоторые другие формы, которые я видел, включают гусеницу , тире и дефис , но ни одна из них не является стандартной.

Итак, ответ на ваш вопрос: нет, для этого случая нет единого общепринятого имени, аналогичного snake_case или camelCase , которые широко распространены.


118
В связанной статье в Википедии в настоящее время есть ссылка, которая ссылается на этот вопрос переполнения стека ... в частности, на вопрос о кебаб-кейсе. Возможно, использование Википедии в качестве источника не было умной идеей.
dequis

8
@BenLee Я - тот, кого вы почувствовали, вырезали копию - за что извинения. Обратите внимание, что spinal-case / Train-Case были добавлены в Википедию 2012-10-07 без ссылки анонимного пользователя с IP-адреса без другой истории Википедии. Я не смог найти никаких других доказательств для тех терминов, которые не возвращались в Википедию. С другой стороны, я чувствовал, что этот вопрос StackOverflow действительно свидетельствует о том, что в kebab-case есть сообщество пользователей, которое не зависит от того, что было введено в статью в Википедии без доказательств. Надеюсь, этого достаточно, чтобы избежать первоначального обвинения в исследованиях.
Роберт Тупело-Шнек

7
У меня был соблазн полностью удалить случай с позвоночником и поездом (как вероятный вандализм); но, может быть, давний вандализм в Википедии может создать доказательства для себя. Вот что, похоже, здесь и произошло.
Роберт Тупело-Шнек

11
Мне нравится "случай catipillar", потому что он сплющенный, а затем длинный и соответствует теме животных
RenaissanceProgrammer

55
футляр для кебаба, потому что он выглядит, как слова,
ажурный на кебабе

464

Это называется кебаб-кейс . Смотрите документы lodash .


190
Вот ссылка , которая делает его официальным;)
Andreas

13
Вот еще одна ссылка: github.com/qerub/camel-snake-kebab ;)
qerub

11
Рекурсия в ссылке означает, что это намного больше похоже на Lisp.
Майкл Делла Битта

140
Я проголосовал за этот ответ не потому, что считаю его правильным, а потому, что хочу, чтобы он был правильным.
Джейсон Светт

43
Я люблю происходящий здесь цитогенез . Этот ответ ссылается на lodash, который ссылается на википедию, которая ссылается на этот ответ!
gilly3

37

Это также иногда называют гусеницей


61
Случай с гусеницей имеет гораздо больше смысла, чем случай с шашлыком, потому что верблюды, змеи и гусеницы - это все виды живых существ, а шашлык - нет.
Дайра Хопвуд


4
Поскольку у «гусеницы» четыре слога, а у «шашлыка», «тире» и «дефиса» есть один или два, я думаю, что аргументация в пользу гусеницы - проигрышная битва
Ниндзяканнон

1
«гусеница-кейс» слишком длинна, чтобы называться кейс-кейс, я думаю, «червяк-кейс» был бы лучшим выбором. : D
Бахаттин Унгормус

5
@DairaHopwood полностью согласен .. Паскаль тоже был живым существом.
nawfal

16

Добавление правильной ссылки здесь Kebab Case

Все в нижнем регистре с - разделяющие слова.


12

Поскольку символ (-) упоминается как «дефис» или «тире», кажется более естественным назвать этот « тире-регистр » или « дефис-регистр » (используется реже).

Как упоминалось в Википедии , также используется « кебаб-кейс ». Видимо (см. Ответ ) это потому, что персонаж будет выглядеть как вертел ... Хотя это требует некоторого воображения.
Используется в lodash lib, например.

В последнее время « дэш-кейс » использовался


6
В случае с кебабом речь идет о шашлыке, а не о кешабе, если это поможет.
Альпер

10

Я всегда называл это и слышал, как это называется «приборная панель».


21
Это навсегда будет известно как Дело Даши Макдаша
Коллин

15
@colllin Я думаю, ты имеешь в виду dashy-mcdash-case;)
siguy85

7

Полный список после некоторых исследований:

  • Кебаб кейс
  • Гусеничный ход
  • Тире
  • Падеж дефис
  • Лисп случай
  • Случай позвоночника
  • Случай CSS

6

Там нет стандартизированного имени.

Библиотеки как jquery и lodash ссылаются на это kebab-case. Так же как и фреймворк Vuejs для JavaScript. Тем не менее, я не уверен, безопасно ли объявить, что это упоминается как kebab-caseв мире javascript.


Вот так, если вы приехали сюда из Vuejs docs
a20

5

Я бы просто сказал, что это было через дефис .


8
Дефис может быть хорошим ответом на английский вопрос, но для кода он недостаточно конкретен. Например, kebab-caseвсе буквы строчные.
rybo111



2

Вот более недавняя дискомбобуляция. Документация повсеместно в угловых курсах JS и Pluralsight и книгах по угловым, во всех случаях кебаб-кейс относится к кейсу-кейсу, а не к различию между ними.

Его слишком плохой гусеничный футляр не прилипал, потому что snake_case и caterpillar-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

любой ответ на ваш ответ?
датчанин Брауэр
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.