什么是 Snake Case?

2025 年 2 月 4 日 | 阅读 4 分钟

被称为“snake case”或 snake_case 的命名风格,其特点是单词全部小写,并且每个空格都被下划线(_)替换。在计算机领域,这是文件名以及变量和子程序名称的一种典型命名约定。一项研究表明,读者能够比驼峰命名法更快速地识别 snake_case 中的值。然而,“受试者主要接受了下划线风格的训练”,因此不能完全排除偏差。

What is Snake Case

大写蛇形命名法(Screaming Snake Case)是其变体,其中所有字母都使用大写来书写文本(风格化为 SCREAMING_SNAKE_CASE)。C/C++、Python、Java、PHP 等编程语言采用这种技术来表示常量和环境变量。

当开发人员使用 snake_case 命名约定,他们会用下划线替换分隔单词的空格。

在大多数面向对象编程语言中,变量、方法、类和函数的名称都不允许包含空格。然而,snake_case 命名约定,也称为 snake_case,通过用下划线替换空格,能够创建出由多个单词组成的、具有描述性的变量和方法名称,而不会导致编译错误。

术语“snake”(蛇)来源于伴随的下划线视觉效果,它们就像蛇在单词之间在地表蜿蜒爬行。

历史

自 20 世纪 60 年代末以来,下划线一直被用作单词分隔符。它们与 C 语言尤其相关,并在《C 编程语言》(1978 年)一书中有所提及。它们不同于 Pascal Case,后者是 Camel Case 的一种形式。尽管如此,这种习惯之前并不为人所知;Python 编程语言风格指南将其标记为“lower_case_with_underscores”(小写带下划线)。

Snake Case 的格式规则

为了有效使用 snake case,您需要遵循一些简单的建议

  1. 所有单词都用小写输入。
  2. 使用下划线('_')分隔单词。
  3. 避免使用特殊字符或空格。
  4. 名称的开头和结尾应使用字母,不应使用下划线。

请注意,snake case 是区分大小写的,这意味着名称“snake_case”和“Snake_Case”将被视为不同。

Snake Case 的示例

以下三个简单的代码片段使用了 snake case 命名约定



CamelCase 与 Snake Case

与 kebab-case 类似,有时也称为 kebab-case,snake case 使用类似的命名方案。因为单词之间的空格读起来像一个常规短语,所以这两种标准都有助于开发人员理解代码。

CamelCase 命名风格的复合词之间没有空格,这与此规则不同。以下是 kebab-case、snake case 和 camel case 的示例

  • hello_world (snake case)
  • HelloWorld (camel case)
  • hello-world (kebab case)
What is Snake Case

Kebab-case 与 snake_case

虽然在 snake_case 和 kebab-case 中都可以在单词之间创建空格,但开发人员创建空格的方法有所不同。

在 snake case 中,下划线创建空格;而在 kebab case 中,连字符添加空格。

kebab-case 可能令人担忧的一个原因是,它与减号和连字符的相似性。当某些程序将连字符误认为是负号时,程序可能很难识别应用程序中的漏洞。

大写蛇形命名法

受 C 和 C++ 启发的语言,如 Java、Kotlin、Groovy 和 Clojure 中的常量,使用大写蛇形命名法或全大写的 snake case。社交媒体和在线聊天室将输入全部大写字母的人称为“尖叫”(screaming),因此得名。例如

  • HELLO_WORLD (此示例为大写蛇形命名法)
  • hello_world (这不是大写蛇形命名法示例)

机器代码与 snake case

开发人员绝不应该在 snake case 中使用前导或尾随下划线。为了指示方法或类是由机器创建的,通常在前导或尾随下划线用于变量名。

Snake Case 的优点

采用 snake case 为团队和工程师提供了多种好处,包括

  • 可读性和清晰性:当您使用 snake case 时,变量和函数名更容易被您自己和其他程序员在未来理解和掌握。
  • 可维护性和一致性:在程序中统一使用 snake case 会产生一种同质感,从而简化协作和维护。
  • 语言兼容性:Snake case 被广泛应用于各种计算机语言中,因此您的命名约定将适用于多种技术。

下一个主题计算机编程应用