99

我对不同类型的标识符案例以及人们对它们的称呼感兴趣。您是否知道此列表中的任何新增内容或其他替代名称?

  • myIdentifier: Camel case (例如在java变量名中)
  • MyIdentifier: 大写驼峰式大小写(例如在 java 类名中)
  • my_identifier: 蛇形大小写(例如在 python 变量名中)
  • my-identifier:烤肉串盒(例如在球拍名称中)
  • myidentifier: 扁平大小写(例如在 java 包名中)
  • MY_IDENTIFIER: 大写(例如在 C 常量名中)
4

6 回答 6

62
  • flatcase
  • kebab-case. 也称为caterpillar-case, dash-case, hyphen-case, lisp-case, spinal-casecss-case
  • camelCase
  • PascalCase或者CapitalCamelCase
  • snake_case或者c_case
  • MACRO_CASE或者UPPER_CASE
  • COBOL-CASE或者TRAIN-CASE
于 2019-01-23T15:04:52.590 回答
22

名称要么是通用的,在一种语言之后,要么是丰富多彩的;大多数在特定社区之外没有标准名称。

这些命名约定有很多名称(名称的名称!);请参阅命名约定:多词标识符,尤其是CamelCase(UpperCamelCase、lowerCamelCase)。但是,许多没有标准名称。考虑一下 Python 风格指南PEP 0008——它用通用名称来称呼它们,比如“lower_case_with_underscores”。

一种约定是以众所周知的用途命名。这导致:

  • 帕斯卡案例
  • MACRO_CASE(C 预处理器宏)

…并建议这些名称,这些名称并未广泛使用:

  • c_case(在 K&R 和标准库中使用,如 size_t)
  • lisp 案例,css 案例
  • COBOL 案例

或者,还有一些说明性的名称,其中最确定的是 CamelCase。snake_case是最近的(2004 年),但现在已经很成熟了。kebab-case 是最近才出现的,但尚未建立,可能起源于 Stack Overflow!(破折号分隔的案例叫什么名字?)还有更多丰富多彩的建议,例如毛毛虫案例,火车案例(首字母大写),大篷车案例等。

于 2015-08-14T05:25:54.117 回答
8
+--------------------------+-------------------------------------------------------------+
| Formatting               | Name(s)                                                     |
+--------------------------+-------------------------------------------------------------|
| namingidentifier         | flat case/Lazy Case                                         |
| NAMINGIDENTIFIER         | upper flat case                                             |
| namingIdentifier         | (lower) camelCase, dromedaryCase                            |
| NamingIdentifier         | (upper) CamelCase, PascalCase, StudlyCase, CapitalCamelCase |
| naming_identifier        | snake_case, snake_case, pothole_case, C Case                |
| Naming_Identifier        | Camel_Snake_Case                                            |
| NAMING_IDENTIFIER        | SCREAMING_SNAKE_CASE, MACRO_CASE, UPPER_CASE, CONSTANT_CASE |
| naming-identifier        | Kebab Case/caterpillar-case/dash-case, hyphen-case,         |
|                          | lisp-case, spinal-case and css-case                         |
| NAMING-IDENTIFIER        | TRAIN-CASE, COBOL-CASE, SCREAMING-KEBAB-CASE                |
| Naming-Identifier        | Train-Case, HTTP-Header-Case                                |
| _namingIdentifier        | Undercore Notation (prefixed by "_" followed by camelCase   |
| datatypeNamingIdentifier | Hungarian Notation (variable names Prefixed by metadata     |
|                          | data-types which is out-dated)                              |
|--------------------------+-------------------------------------------------------------+
于 2020-10-10T12:50:12.860 回答
4

MyVariable: Pascal Case=> 用于Class

myVariable: Camel Case=> 用于variableJava、C# 等。

myvariable: Flat Case=> 用于packageJava 等。

my_variable: Snake Case=> 用于variablePython、PHP 等。

my-variable: Kebab Case=> 用于css

于 2020-05-13T11:20:16.933 回答
0

最常见的案例类型: 骆驼案例 蛇案例 烤肉案例 帕斯卡案例 大写(带蛇案例)

camelCase camelCase 必须 (1) 以小写字母开头,并且 (2) 每个新后续单词的首字母大写,并与前一个单词复合。

变量的驼峰式例子camel case varcamelCaseVar.

snake_case snake_case 就像用“_”替换所有空格并将所有单词小写一样简单。可以将蛇形大小写并混合使用 camelCase 和 PascalCase,但 imo 最终会达到目的。

变量蛇案例的一个例子snake case varsnake_case_var

kebab-case kebab-case 就像用“-”替换所有空格并将所有单词小写一样简单。可以使用 kebab-case 并混合 camelCase 和 PascalCase,但这最终会破坏目的。

变量的 kebab 案例的一个示例kebab case varkebab-case-var.

PascalCase PascalCase 的每个单词都以大写字母开头(与 camelCase 不同,第一个单词以小写字母开头)。

变量的帕斯卡案例的一个例子pascal case varPascalCaseVar

注意:通常会将此与驼峰式案例混淆,但它完全是一种单独的案例类型。

UPPER_CASE_SNAKE_CASE UPPER_CASE_SNAKE_CASE 将所有空格替换为“_”并将所有字母转换为大写字母。

变量的大写蛇形例子upper case snake case varUPPER_CASE_SNAKE_CASE_VAR.

于 2021-05-20T13:31:42.163 回答
0

特别是对于 Python,最好snake_case用于变量和函数名、UPPER_CASE常量(即使我们没有任何关键字专门说明我们的变量是常量)和PascalCase类名。

camelCase不建议在 Python 中使用(尽管 Javascript 等语言将其作为主要大小写),并且kebab-case由于 Python 名称不能包含连字符 ( -),因此无效。

variable_name = 'Hello World!'

def function_name():
    pass

CONSTANT_NAME = 'Constant Hello World!!'

class ClassName:
    pass
于 2021-09-20T11:55:30.990 回答