Qual é o nome do caso separado por hífen?


509

Aqui é PascalCase: SomeSymbol

Este é o camelCase: someSymbol

Isto é snake_case: some_symbol

Então, minhas perguntas são se existe um nome amplamente aceito para isso some-symbol:? É comumente usado em URLs.


11
Não. A maioria dos idiomas não permite esses identificadores. Também o primeiro é chamado caso Pascal.
Cat Plus Plus


14
O @CatPlusPlus Lisp usa esse caso e, como o Google trata o -espaço, quase todo URL amigável de SEO também o usa.
lms

4
Eu acredito que é mais comum chamar o primeiro exemplo que você der pelo nome PascalCase .
de Drew Noakes

24
@CatPlusPlus 1) URLs NÃO são irrelevantes para as linguagens de programação. Eles são uma das linguagens de programação de recursos mais frequentes. Alguns idiomas até tratam URLs como um objeto de primeira classe. No Go, embora não sejam de primeira classe, os URLs são usados ​​para importar pacotes. 2) A cadeia separada por traços é bastante comum em várias linguagens (a família LISP para uma) e também em linguagens ansilarias usadas na programação, como CSS. O que é uma "minoria" para você, é o idioma que os outros trabalham diariamente. Não somos todos programadores de VB6.
precisa saber é o seguinte

Respostas:


433

Não existe realmente um nome padrão para esta convenção de caso e há desacordo sobre o que deve ser chamado.

Dito isto, a partir de 2019, há um argumento forte de que o caso de kebab está ganhando:

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

a coluna vertebral é um segundo distante, e nenhum outro termo tem tração.

Além disso, o kebab-case inseriu o léxico de várias bibliotecas de códigos javascript, por exemplo:

No entanto, ainda existem outros termos que as pessoas usam. O Lisp usa essa convenção há décadas, como descrito nesta entrada da Wikipedia , então algumas pessoas a descreveram como caso do lisp . Algumas outras formas que eu vi incluem lagarta-caso , traço-caso , e hífen caso , mas nenhuma delas é padrão.

Portanto, a resposta para sua pergunta é: Não, não existe um único nome amplamente aceito para esta convenção de caso análoga a snake_case ou camelCase , que são amplamente aceitas.


118
Atualmente, o artigo da wikipedia vinculado tem uma referência que remete a essa questão de estouro de pilha ... especificamente à questão de caso de kebab. Talvez usar a wikipedia como fonte não fosse uma idéia inteligente.
dequis 28/07

8
@ BenLee Eu sou a pessoa que você sentiu massacrar a cópia - pelas quais pede desculpas. Observe que spinal-case / Train-Case foi adicionado à Wikipedia em 07/10/2012 - sem referência por um usuário anônimo a partir de um endereço IP sem outro histórico da Wikipedia. Não consegui encontrar nenhuma outra evidência para os termos que não voltaram circularmente à Wikipedia. Por outro lado, senti que essa pergunta do StackOverflow oferecia evidências de que o kebab-case possui uma comunidade de usuários que não depende de algo inserido em um artigo da Wikipedia sem evidências. Espero que isso seja suficiente para evitar o custo da pesquisa original.
Robert Tupelo-Schneck

7
Fiquei tentado a remover completamente a coluna vertebral e a caixa do trem (como provável vandalismo); mas talvez o vandalismo de longa data da Wikipedia possa realmente criar evidências para si. Isso é o que parece ter acontecido aqui.
Robert Tupelo-Schneck

11
Eu gosto de "caso catipilar", pois é esmagado e, em seguida, longo, e continua com o tema animal
RenaissanceProgrammer

55
kebab-case-porque it-se parece com-as-palavras-são skewered-on-a-kebab
Aaron_H

464

É referido como caso de kebab . Veja os documentos do lodash .


190
Aqui é uma referência , que torna oficial;)
Andreas

13
Aqui está outra referência: github.com/qerub/camel-snake-kebab ;)
qerub 6/6

11
A recursão na referência significa que é muito mais parecido com o Lisp.
Michael Della Bitta

140
Votei esta resposta não porque acredito que é a certa, mas porque quero que seja a certa.
precisa saber é o seguinte

43
Eu amo a citogênese acontecendo aqui. Esta resposta está vinculada ao lodash, que possui links para a wikipedia, que possui links para esta resposta!
precisa saber é o seguinte

37

Também é conhecido como caso de lagarta


61
o estojo de lagarta faz muito mais sentido do que o estojo de kebab, porque camelos, cobras e lagartas são todos os tipos de criaturas vivas, enquanto um kebab não é.
Daira Hopwood


4
Como "lagarta" tem quatro sílabas, enquanto que "kebab", "traço" e "hífen" ter um ou dois, eu acho defendendo lagarta-case é uma batalha perdida
Ninjakannon

1
"caso de lagarta" é muito longo para ser um nome de caso, acho que "caso de verme" seria uma escolha melhor. : D
Bahattin Ungormus

5
@DairaHopwood concorda plenamente .. Pascal também era uma criatura viva.
Nawfal


12

Como o caractere (-) é chamado de "hífen" ou "traço", parece mais natural denominar " caso de traço " ou " caso de hífen " (usado com menos frequência).

Como mencionado na Wikipedia , " kebab-case " também é usado. Aparentemente (veja a resposta ), isso ocorre porque o personagem se parece com um espeto ... Porém, ele precisa de imaginação.
Utilizado no lodash lib, por exemplo.

Recentemente, " caso de traço " foi usado por


6
O caso do kebab refere-se mais ao shish-kebab do que ao döner kebab, se isso for de alguma ajuda.
Alper

10

Eu sempre o chamei, e ouvi-o ser chamado de 'traço'.


21
Ele será para sempre conhecido como Dashy McDash Caso
colllin

15
@colllin Eu acho que você Dashy-mcdash caso médio;)
siguy85

7

A lista completa após algumas pesquisas:

  • Kebab case
  • Caso Caterpillar
  • Caso traço
  • Caso hífen
  • Caso Lisp
  • Caso espinhal
  • Caso CSS

6

Não há nome padronizado.

Bibliotecas como jquery e lodash o referem como kebab-case. O mesmo acontece com o framework javascript do Vuejs . No entanto, não tenho certeza se é seguro declarar que é referido kebab-caseno mundo javascript.


Assim se você veio aqui a partir de docs Vuejs
a20

5

Eu simplesmente diria que foi hifenizado .


8
Hifenizado pode ser uma boa resposta para uma pergunta em inglês, mas para o código não é específico o suficiente. Por exemplo, kebab-casetodas as letras são minúsculas.
rybo111



2

Aqui está uma descombobulação mais recente. Documentação em todos os lugares nos cursos angulares de JS e Pluralsight e livros sobre angular, todos se referem ao caso de kebab como um caso de cobra, sem diferenciar os dois.

Seu estojo de lagarta muito ruim não grudou porque snake_case e caterpillar-case são facilmente lembrados e realmente se parecem com o que representam (se você tiver uma boa imaginação).


1

Minha proposta 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();
}

alguma resposta à proposta?
Nxmohamad

alguma resposta à sua resposta?
Dane Brouwer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.