转换器

编程命名规范:camelCase、snake_case、PascalCase 及更多

编程命名规范完整指南。学习何时使用 camelCase(驼峰命名法)、snake_case(蛇形命名法)、PascalCase(大驼峰命名法)、kebab-case(短横线命名法)和 CONSTANT_CASE(常量命名法),涵盖 JavaScript、Python、Go、Java、CSS 等语言的具体规则。

发布于 2026年3月20日
15 分钟阅读
密码学指南

编程命名规范:camelCase、snake_case、PascalCase 及更多

命名规范是每位开发者必须掌握的基础知识之一,也是代码库中不一致现象最常见的来源之一。使用错误的命名风格不会导致语法错误,但会让有经验的开发者感到你对该语言惯用法不够熟悉,从而降低代码的可读性。

本指南涵盖所有主流命名规范、各自的适用场景,以及 10 种编程语言的具体规则。使用我们免费的大小写转换工具,可在所有这些格式之间即时转换文本。

主要命名规范

camelCase(驼峰命名法)

规则:第一个单词小写,后续单词首字母大写,单词之间无分隔符。

myVariableName
calculateTotalPrice
getUserById
isAuthenticated

适用场景:JavaScript/TypeScript 的变量和函数、Java 的变量和方法、JSON 属性名、Swift 的变量和函数。

名称由来:单词中间的大写字母形似骆驼的驼峰,故称 camelCase。

PascalCase(大驼峰命名法,又称 UpperCamelCase)

规则:每个单词首字母均大写(包括第一个单词),单词之间无分隔符。

MyClassName
UserProfile
HttpRequestHandler
DatabaseConnection

适用场景:几乎所有语言中的类名、React/Vue/Angular 组件名、TypeScript 接口和类型、C# 的所有命名(方法、属性、类)。

与 camelCase 的关键区别:首字母大写。myFunction(camelCase)vs MyFunction(PascalCase)。

snake_case(蛇形命名法)

规则:全部小写,单词之间用下划线分隔。

my_variable_name
calculate_total_price
get_user_by_id
is_authenticated

适用场景:Python 的变量、函数和模块名(遵循 PEP 8)、Ruby 的变量和方法、Rust 的变量和函数、数据库的列名和表名、许多项目中的文件名。

SCREAMING_SNAKE_CASE(尖叫蛇形命名法,又称 CONSTANT_CASE)

规则:全部大写,单词之间用下划线分隔。

MAX_RETRY_COUNT
DATABASE_URL
API_BASE_URL
DEFAULT_TIMEOUT_MS

适用场景:大多数语言中的常量、环境变量、C/C++ 预处理器宏、Java 的静态 final 字段。

kebab-case(短横线命名法,又称 dash-case)

规则:全部小写,单词之间用连字符(短横线)分隔。

my-component-name
user-profile-card
border-bottom-color
my-awesome-package

适用场景:CSS 类名和属性、HTML 属性(data-*)、URL 别名(slug)、npm 包名、许多框架中的文件名、Lisp/Clojure 函数名。

注意:kebab-case 不能用于大多数编程语言的变量名,因为连字符会被解析为减法运算符。

dot.case(点分命名法)

规则:全部小写,单词之间用点号分隔。

com.example.myapp
log.level.debug
spring.datasource.url

适用场景:Java 包名、配置键(Spring Boot、.properties 文件)、C# 命名空间、域名。

Train-Case(列车命名法,又称 HTTP-Header-Case)

规则:每个单词首字母大写,单词之间用连字符分隔。

Content-Type
X-Request-Id
Accept-Language
Cache-Control

适用场景:HTTP 头部、MIME 类型。这是唯一一种在使用连字符的同时对单词首字母大写的常见命名规范。

各语言具体规则

JavaScript / TypeScript

元素规范示例
变量camelCaselet userName = "John"
函数camelCasefunction getUserData()
PascalCaseclass UserProfile
接口(TS)PascalCaseinterface ApiResponse
类型别名(TS)PascalCasetype UserId = string
常量CONSTANT_CASEconst MAX_RETRIES = 3
枚举成员(TS)PascalCaseenum Color { Red, Blue }
React 组件PascalCasefunction UserCard()
CSS 模块camelCasestyles.headerContainer
文件名kebab-case 或 camelCaseuser-profile.ts
npm 包kebab-casemy-awesome-lib

Python

元素规范示例
变量snake_caseuser_name = "John"
函数snake_casedef get_user_data():
PascalCaseclass UserProfile:
常量CONSTANT_CASEMAX_RETRIES = 3
模块snake_caseimport user_utils
纯小写(无分隔符)import mypackage
私有成员单前导下划线self._internal_data
名称改写双前导下划线self.__private_var
魔术方法双侧双下划线def __init__(self):

Python 的命名规范定义于 PEP 8,是被普遍接受的风格指南。

Java

元素规范示例
变量camelCaseString userName
方法camelCasegetUserData()
PascalCaseclass UserProfile
接口PascalCaseinterface Serializable
常量CONSTANT_CASEstatic final int MAX_RETRIES
小写点分隔com.example.myapp
枚举值CONSTANT_CASEenum Status { ACTIVE, INACTIVE }

Go

元素规范示例
导出(公有)PascalCasefunc GetUser()type Config struct
未导出(私有)camelCasefunc parseInput()var count int
常量PascalCase 或 camelCaseconst MaxRetries = 3
纯小写(单个单词)package http
接口PascalCase + -er 后缀type Reader interface
缩写词全大写userIDhttpURLsqlDB

Go 使用大小写来控制可见性——导出的标识符以大写字母开头,未导出的以小写字母开头。这由编译器强制执行,而不仅仅是约定。

CSS

元素规范示例
属性kebab-casebackground-color: red
类名kebab-case.user-profile-card
BEM 表示法block__element--modifier.card__title--active
CSS 自定义属性带 -- 前缀的 kebab-case--primary-color: blue
Sass 变量带 $ 的 kebab-case$font-size-large
Tailwind 类kebab-casetext-smbg-blue-500

Rust

元素规范示例
变量snake_caselet user_name = "John"
函数snake_casefn get_user_data()
结构体/枚举PascalCasestruct UserProfile
常量SCREAMING_SNAKE_CASEconst MAX_RETRIES: u32 = 3
模块snake_casemod user_utils
Trait(特征)PascalCasetrait Serialize
Crate 名称kebab-case(Cargo.toml)/ snake_case(代码)my-crate / my_crate

SQL

元素规范示例
关键字大写SELECTFROMWHERE
表名snake_case(单数或复数均可)user_profileuser_profiles
列名snake_casefirst_namecreated_at
索引ix_ 前缀ix_users_email
外键fk_ 前缀fk_orders_user_id

常见转换场景

跨语言或跨系统工作时,经常需要在不同命名规范之间转换:

从 → 到适用场景
camelCase → kebab-caseJS 属性 → CSS 类名
camelCase → snake_caseJS/Java → Python/Ruby/数据库
snake_case → camelCase数据库/API → JavaScript
PascalCase → kebab-case组件名 → 文件名
kebab-case → camelCaseCSS 属性 → JS 样式属性
CONSTANT_CASE → camelCase环境变量 → 配置对象

示例:一个 JSON API 可能返回 user_name(snake_case),但你的 JavaScript 代码使用 userName(camelCase),CSS 使用 .user-name(kebab-case),React 组件是 UserName(PascalCase)——它们表示的是同一个概念。

使用我们的大小写转换工具,无需手动重新输入即可在所有这些格式之间即时转换。

缩写词与缩略词

各语言处理标识符中缩写词的方式不同:

语言规则示例
JavaScript仅首字母大写userIdhtmlParserapiUrl
Go保持全大写userIDhtmlParserapiURL
C#两字母缩写全大写;三字母及以上用 PascalCaseIOStreamHtmlParser
Java仅首字母大写userIdhttpUrl
Python在 snake_case 中保持小写user_idhtml_parserapi_url

缩写词的处理方式是命名风格中争议最多的问题之一。最重要的是在项目内部保持一致性。

文件命名规范

语言/框架规范示例
JavaScript/TypeScriptkebab-case 或 camelCaseuser-profile.tsuserProfile.ts
React 组件PascalCaseUserProfile.tsx
Pythonsnake_caseuser_profile.py
JavaPascalCase(与类名一致)UserProfile.java
Go纯小写userprofile.go
CSS/SCSSkebab-caseuser-profile.css
测试文件同名 + .test/.specuser-profile.test.ts

风格指南参考

语言官方风格指南
PythonPEP 8
JavaScriptAirbnb / Google / StandardJS
TypeScriptGoogle TypeScript Style Guide
JavaGoogle Java Style Guide
GoEffective Go(由 gofmt 强制执行)
RustRust API Guidelines
C#.NET Naming Guidelines
SwiftSwift API Design Guidelines
RubyRuby Style Guide
PHPPSR-12

常见问题

命名规范会影响代码执行吗?

在大多数语言中不会——myVarmy_var 都是合法的。例外是 Go:大小写决定可见性,MyFunc 是导出的(公有),myFunc 是未导出的(私有)。在 CSS 中,类名区分大小写,.MyClass.myclass 是不同的选择器。

哪种命名规范「最好」?

没有普遍最佳的规范。应遵循所用语言的既定惯例。在 JavaScript 中使用 snake_case 或在 Python 中使用 camelCase 虽然能运行,但会让其他开发者感到困惑,并违背社区预期。在项目内部保持一致性比选择哪种规范更重要。

代码检查工具如何强制执行命名规范?

ESLint(JavaScript)有 camelcase 规则;Pylint(Python)强制执行 PEP 8 命名;RuboCop(Ruby)检查命名风格;Go 编译器通过大小写强制执行导出规则。大多数代码检查工具都可以配置,以满足项目的具体命名要求。


需要在命名规范之间转换文本?使用我们的大小写转换工具,可在 camelCase、snake_case、PascalCase、kebab-case 等格式之间即时转换。如需统计代码中的字符数和单词数,可以试试我们的字数统计工具

关于本文

本文是我们综合 转换器 教程系列的一部分。继续了解古典密码学,并探索我们的交互式密码工具。

更多 转换器 教程

试用 转换器 工具

通过我们的交互式转换器工具,将所学知识付诸实践。

试用 转换器 工具