Як називається випадок, розділений дефісом?


509

Це PascalCase: SomeSymbol

Це camelCase: someSymbol

Це змія: some_symbol

Тож мої запитання: чи існує загальноприйнята назва для цього some-symbol:? Він зазвичай використовується в URL-адресах.


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


14
@CatPlusPlus Lisp використовує цей випадок, і оскільки Google розглядає -як простір, майже кожна SEO-адресна URL-адреса також використовує його.
lms

4
Я вважаю, що частіше називати перший приклад, який ви даєте на ім'я PascalCase .
Дрю Ноакс

24
@CatPlusPlus 1) URL-адреси НЕ стосуються мов програмування. Вони є однією з найчастіших мов програмування ресурсів. Деякі мови навіть трактують URL-адреси як об'єкт першого класу. URL-адреси Go, хоча і не є першим класом, використовуються для імпорту пакетів. 2) Рядок, розділений тире, досить поширений у декількох мовах (сімейство LISP для однієї), а також у допоміжних мовах, що використовуються в програмуванні, як CSS. Що для вас "меншість", це мова, яку інші працюють в день і поза. Ми не всі програмісти VB6.
Хеджазман

Відповіді:


433

Насправді не існує стандартної назви для цієї конвенції про справу, і існує розбіжність з приводу того, що її слід називати.

Зважаючи на це, станом на 2019 рік слід зробити вагомий випадок, щоб виграв шашлик :

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

spinal-case - це далека секунда, і жоден інший термін взагалі не має тяги.

Крім того, кебаб-випадок увійшов до лексикону декількох бібліотек коду JavaScript, наприклад:

Однак є й інші терміни, якими користуються люди. Лісп використовував цю конвенцію протягом десятиліть, як описано в цій статті у Вікіпедії , тому деякі люди описали її як випадок . Деякі інші форми, які я бачив, включають гусеничний футляр , тире та дефіс , але жодна з них не є стандартною.

Отже, відповідь на ваше запитання: Ні, для цієї справи немає жодної широко прийнятої назви, аналогічної snake_case або camelCase , які широко приймаються.


117
На даний момент пов'язана стаття з Вікіпедії містить посилання, яке посилається на це питання про переповнення стека ... конкретно на питання про шашлик. Можливо, використання wikipedia як джерела не було розумною ідеєю.
декіс

8
@BenLee Я той, кого ти відчув, як копію отримав, - за що вибач. Зауважте, що spinal-case / Train-Case були додані до Вікіпедії 2012-10-07 без посилання анонімного користувача з IP-адреси без іншої історії Вікіпедії. Я не міг знайти жодних інших доказів для тих термінів, які циркулярно не поверталися до Вікіпедії. З іншого боку, я вважаю, що це питання StackOverflow пропонує докази того, що шашлик має спільноту користувачів, яка не залежить від чогось, що входить у статтю Вікіпедії без доказів. Я сподіваюся, що цього достатньо, щоб уникнути оригінальної плати за дослідження.
Роберт Тупело-Шнек

7
Мене спокусило повністю зняти спинальну футлярику та поїздку (як імовірно, вандалізм); але, можливо, давній вандалізм у Вікіпедії може насправді створити докази для себе. Ось що, здається, сталося тут.
Роберт Тупело-Шнек

11
Мені подобається «чотирикутний футляр», оскільки він скутий, а потім довгий, і тримається на тему тварин
РенесансПрограммер

55
шашлик, тому що він схожий на слова
перекинувся на

464

Це називається шашликом . Див. Лодашські документи .


190
Ось довідка , яка робить це офіційним;)
Андреас

13
Ось ще посилання: github.com/qerub/camel-snake-kebab ;)
qerub

11
Рекурсія в довідці означає, що це набагато більше, як Lisp.
Майкл Делла Бітта

140
Я відповів на цю відповідь не тому, що вважаю, що вона є правильною, а тому, що я хочу, щоб вона була правильною.
Джейсон Світт

43
Я люблю, що тут відбувається цитогенез . Ця відповідь посилається на lodash, яка посилається на wikipedia, яка посилається на цю відповідь!
gilly3

37

Також іноді його називають футляром гусениць


61
гусениця має набагато більше сенсу, ніж шашлик, тому що верблюди, змії та гусениці - це всі види живої істоти, а шашлик - ні.
Дайра Хопвуд


4
Оскільки "гусениця" має чотири склади, тоді як "шашлик", "тире" та "дефіс" мають один-два, я думаю, що сперечатися на випадок гусениці - це програючий бій
Ninjakannon

1
"гусениця-футляр" занадто довга, щоб називати справу, я думаю, що "черв'як-футляр" був би кращим вибором. : D
Bahattin Ungormus

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 та книги про кутові, усі називають шашлик як випадок змії, не розрізняючи їх.

Його надто поганий кейс-гусениця не приклеївся, тому що зміїний корпус і гусениця легко запам'ятовуються і насправді виглядають як вони представляють (якщо у вас є хороша уява).


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.