¿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.

lms
fuente
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.

Ben Lee
fuente
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 .

jwfearn
fuente
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

tim_yates
fuente
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
26
@DairaHopwood cs.helsinki.fi/u/hhallama/pics/kebabelain.jpg
mikemaccana
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
16

Agregar el enlace correcto aquí Caso Kebab

que es todo en minúsculas con - palabras de separación.

usuario666
fuente
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

Guillaume Husta
fuente
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'.

Mike Campbell
fuente
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
Shadi Namrouti
fuente
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.

Gaurang Patel
fuente
Así si viniste aquí desde Vuejs docs
a20
5

Simplemente diría que estaba dividido en guiones .

Jem Marsh
fuente
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).

Wray Smallwood
fuente
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();
}
Christoph Bühler
fuente
alguna respuesta a la propuesta?
nxmohamad
alguna respuesta a tu respuesta?
Dane Brouwer