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

509

Это PascalCase: SomeSymbol

Это camelCase: someSymbol

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

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

Пленки
источник
11
Нет. Большинство языков не допускают такие идентификаторы. Также первый из них называется Pascal case.
Cat Plus Plus
4
Дубликат этого: programmers.stackexchange.com/questions/104468/…
Пабби
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 .

jwfearn
источник
190
Вот ссылка , которая делает его официальным;)
Andreas
13
Вот еще одна ссылка: github.com/qerub/camel-snake-kebab ;)
qerub
11
Рекурсия в ссылке означает, что это намного больше похоже на Lisp.
Майкл Делла Битта
140
Я проголосовал за этот ответ не потому, что считаю его правильным, а потому, что хочу, чтобы он был правильным.
Джейсон Светт
43
Я люблю происходящий здесь цитогенез . Этот ответ ссылается на lodash, который ссылается на википедию, которая ссылается на этот ответ!
gilly3
37

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

tim_yates
источник
61
Случай с гусеницей имеет гораздо больше смысла, чем случай с шашлыком, потому что верблюды, змеи и гусеницы - это все виды живых существ, а шашлык - нет.
Дайра Хопвуд
26
@DairaHopwood cs.helsinki.fi/u/hhallama/pics/kebabelain.jpg
mikemaccana
4
Поскольку у «гусеницы» четыре слога, а у «шашлыка», «тире» и «дефиса» есть один или два, я думаю, что аргументация в пользу гусеницы - проигрышная битва
Ниндзяканнон
1
«гусеница-кейс» слишком длинна, чтобы называться кейс-кейс, я думаю, «червяк-кейс» был бы лучшим выбором. : D
Бахаттин Унгормус
5
@DairaHopwood полностью согласен .. Паскаль тоже был живым существом.
nawfal
16

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

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

user666
источник
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
любой ответ на ваш ответ?
датчанин Брауэр