¿Cómo se llama el caso separado por guiones?


509

Esta es PascalCase: SomeSymbol

Esto es camelCase: someSymbol

Esto es snake_case: some_symbol

Así que mi pregunta es si hay un nombre ampliamente aceptado para esto: some-symbol? Se usa comúnmente en url's.


11
No. La mayoría de los idiomas no permiten tales identificadores. También el primero se llama caso Pascal.
Cat Plus Plus


14
@CatPlusPlus Lisp usa este caso, y debido a que Google trata a un -como un espacio, casi todas las URL amigables para SEO también lo usan.
lms

44
Creo que es más común llamar al primer ejemplo que das con el nombre PascalCase .
Drew Noakes

24
@CatPlusPlus 1) Las URL NO son irrelevantes para los lenguajes de programación. Son uno de los lenguajes de programación de recursos más frecuentes. Algunos idiomas incluso tratan las URL como un objeto de primera clase. En Go, aunque no es de primera clase, las URL se usan para importar paquetes. 2) La cadena separada por guiones es bastante común en varios idiomas (la familia LISP para uno), y también en los lenguajes ansiosos utilizados en programación, como CSS. Lo que es una "minoría" para usted, es el idioma que otros trabajan día a día. No todos somos programadores de VB6.
Hejazzman

Respuestas:


433

Realmente no hay un nombre estándar para esta convención de caso, y hay desacuerdo sobre cómo debería llamarse.

Dicho esto, a partir de 2019, hay un fuerte argumento por el cual el caso kebab está ganando:

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

el caso de la columna vertebral es un segundo distante, y ningún otro término tiene tracción alguna.

Además, kebab-case ha entrado en el léxico de varias bibliotecas de códigos javascript, por ejemplo:

Sin embargo, todavía hay otros términos que las personas usan. Lisp ha utilizado esta convención durante décadas como se describe en esta entrada de Wikipedia , por lo que algunas personas la han descrito como caso lisp . Algunas otras formas que he visto incluyen caterpillar-case , dash-case y hyphen-case , pero ninguna de estas es estándar.

Entonces, la respuesta a su pregunta es: No, no hay un solo nombre ampliamente aceptado para esta convención de casos análogo a snake_case o camelCase , que son ampliamente aceptados.


118
El artículo vinculado de Wikipedia actualmente tiene una referencia que lo vincula a esta pregunta de desbordamiento de pila ... específicamente a la pregunta del caso kebab. Quizás usar Wikipedia como fuente no era una idea inteligente.
dequis

8
@BenLee Soy quien sentiste que mataste la copia, disculpa. Tenga en cuenta que espinal-case / Train-Case se agregaron a Wikipedia el 2012-10-07 sin referencia de un usuario anónimo de una dirección IP sin otro historial de Wikipedia. No pude encontrar ninguna otra evidencia de esos términos que no volvieran circularmente a Wikipedia. Por otro lado, sentí que esta pregunta de StackOverflow ofrecía evidencia de que kebab-case tiene una comunidad de usuarios que no depende de algo ingresado en un artículo de Wikipedia sin evidencia. Espero que sea suficiente para evitar el cargo de investigación original.
Robert Tupelo-Schneck

77
Estuve tentado de eliminar completamente el caso de la columna vertebral y el caso del tren (como probable vandalismo); pero quizás el vandalismo de Wikipedia desde hace mucho tiempo en realidad puede crear evidencia por sí mismo. Eso es lo que parece haber sucedido aquí.
Robert Tupelo-Schneck

11
Me gusta "catipillar-case" ya que está aplastado y luego es largo, y sigue con el tema de los animales
RenaissanceProgrammer

55
kebab-case-porque-parece-como-las-palabras-están ensartadas-en-un-kebab
Aaron_H

464

Se conoce como caso kebab . Ver lodash docs .


190
Aquí hay una referencia que lo hace oficial;)
Andreas

13
Aquí hay otra referencia: github.com/qerub/camel-snake-kebab ;)
qerub

11
La recursividad en la referencia significa que es mucho más parecido a Lisp.
Michael Della Bitta

140
Voté esta respuesta no porque creo que es la correcta, sino porque quiero que sea la correcta.
Jason Swett

43
Me encanta la citogénesis que ocurre aquí. ¡Esta respuesta enlaza a lodash que enlaza a wikipedia que enlaza a esta respuesta!
gilly3

37

También a veces se conoce como caja de oruga


61
el caso de oruga tiene mucho más sentido que el caso de kebab, porque los camellos, las serpientes y las orugas son todo tipo de criaturas vivientes, mientras que un kebab no lo es.
Daira Hopwood


44
Como "oruga" tiene cuatro sílabas, mientras que "kebab", "guión" y "guión" tienen una o dos, creo que defender el caso de oruga es una batalla perdida
Ninjakannon

1
"caterpillar-case" es demasiado largo para ser un nombre de caso, creo que "worm-case" sería una mejor opción. : D
Bahattin Ungormus

55
@DairaHopwood está totalmente de acuerdo ... Pascal también era una criatura viviente.
nawfal


12

Como el carácter (-) se conoce como "guión" o "guión", parece más natural nombrar este " guión " o " guión " " (menos frecuente).

Como se menciona en Wikipedia , también se usa " kebab-case ". Aparentemente (ver respuesta ) esto se debe a que el personaje se vería como un pincho ... Sin embargo, necesita algo de imaginación.
Usado en lodash lib por ejemplo.

Recientemente, " dash-case " fue utilizado por


66
El caso del kebab se refiere más al shish-kebab que al döner kebab si eso es de alguna ayuda.
Alper

10

Siempre lo he llamado, y escuché que se llamaba 'tablero'.


21
Siempre se conocerá como Dashy McDash Case
colllin

15
@colllin Creo que te refieres a dashy-mcdash-case;)
siguy85

7

La lista completa después de algunas investigaciones:

  • Caso Kebab
  • Caso Caterpillar
  • Caso de tablero
  • Caso de guión
  • Caso Lisp
  • Caso espinal
  • Caso CSS

6

No hay nombre estandarizado.

Las bibliotecas como jquery y lodash lo llaman kebab-case. También lo hace el framework javascript de Vuejs . Sin embargo, no estoy seguro de si es seguro declarar que se conoce como kebab-casejavascript world.


Así si viniste aquí desde Vuejs docs
a20

5

Simplemente diría que estaba dividido en guiones .


8
Guionizado puede ser una buena respuesta a una pregunta en inglés, pero para el código no es lo suficientemente específico. Por ejemplo, en kebab-casetodas las letras son minúsculas.
rybo111



2

Aquí hay una descombobulación más reciente. Documentación en todas partes en JS angular y cursos de Pluralsight y libros sobre angular, todos se refieren a kebab-case como snake-case, no diferenciando entre los dos.

Su caso de oruga demasiado malo no se pegó porque snake_case y caterpillar-case se recuerdan fácilmente y en realidad se ven como lo que representan (si tienes buena imaginación).


1

Mi propuesta de ECMAScript para 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();
}

alguna respuesta a la propuesta?
nxmohamad

alguna respuesta a tu respuesta?
Dane Brouwer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.