What are the different kinds of cases?

2019-03-11 17:04发布

问题:

I'm interested in the different kinds of identifier cases, and what people call them. Do you know of any additions to this list, or other alternative names?

  • myIdentifier : Camel case (e.g. in java variable names)
  • MyIdentifier : Capital camel case (e.g. in java class names)
  • my_identifier : Snake case (e.g. in python variable names)
  • my-identifier : Kebab case (e.g. in racket names)
  • myidentifier : Flat case (e.g. in java package names)
  • MY_IDENTIFIER : Upper case (e.g. in C constant names)

回答1:

Names are either generic, after a language, or colorful; most don’t have a standard name outside of a specific community.

There are many names for these naming conventions (names for names!); see Naming convention: Multiple-word identifiers, particularly for CamelCase (UpperCamelCase, lowerCamelCase). However, many don’t have a standard name. Consider the Python style guide PEP 0008 – it calls them by generic names like “lower_case_with_underscores”.

One convention is to name after a well-known use. This results in:

  • PascalCase
  • MACRO_CASE (C preprocessor macros)

…and suggests these names, which are not widely used:

  • c_case (used in K&R and in the standard library, like size_t)
  • lisp-case, css-case
  • COBOL-CASE

Alternatively, there are illustrative names, of which the best established is CamelCase. snake_case is more recent (2004), but is now well-established. kebab-case is yet more recent and still not established, and may have originated on Stack Overflow! (What's the name for dash-separated case?) There are many more colorful suggestions, like caterpillar_case, Train-case, caravan-case, etc.



回答2:

  • Flat case: myvariable
  • Kebab case: my-variable (this is the most famous. Other names include: caterpillar case, dash case, hyphen case, lisp case, spinal case and css-case)
  • Camel case: myVariable
  • Pascal case: MyVariable (other names: capital camel case)
  • Snake case: my_variable (other names: c case)
  • Macro case: MY_VARIABLE (other names: upper case)
  • Cobol case: COBOL-CASE (other names: Train case)