先放结论

那么要用哪种风格取决于(按优先级排序):

  1. 最重要的是跟随团队的约定。(编程命名风格并不是非对即错,最重要的是团队统一,其次才是良好的命名风格)
  2. 使用该编程语言的主流命名风格。
  3. 大小写>下划线>连字符

各种风格讨论

编程中最难问题之一是:如何命名?

命名的合理性 影响着 项目的可维护性、代码阅读速度。最理想的命名应该是 “一眼就能看出这个变量代表着什么”

合理命名的关键问题又在于,如何“分隔多个单词”? 有的通过大小写来分隔,有的用下划线/中划线分隔。 主流是使用大小写(骆驼(camel)、帕斯卡(pascal)),C/C++的偏向全小写加下划线,少量情况下会有使用连字符(中线命名法,烤串命名法 (kebab-case))、全大写加下划线(常用于全局常量)。

大小写是主流的写法,其主要规则是:

  • 类名 首字母大写 class CpuTemperature {...}
  • 变量 首字母小写 int cupTemperature = ....
  • 接口 首字母以大写I开关,后接大写开头的名称。 interface ICpuTemperatuer {...}
  • 当出现 大写缩写的单词,两个字母的大写,两个字母以上的按单词算。(比如IO就全大写,IOException,CPU就被写成首字母大写,CpuTemperature

全小写加下划线的写法:cpu_temperature ,这种写法识别速度最快,在c/c++,mysql字段命名里比较常见,所以常见一些工具用于 大小写与下划线 写法相互转换的工具和代码库。

全大写加下划线的写法:CPU_TEMPERATURE,常用于常量声明

连字符写法:cpu-temperature,常见于对大小写不敏感的环境,常见于HTML、CSS。

特别地,部分环境对大小写不敏感(即不能区分大小写,如CpuCPU会被解析成一样的,比如HTML就不敏感),所以就不会使用主流的大小写的写法,而更倾向于使用连字符写法。

或许有人问,连字符写法与下划线写法有什么区别?

对比项 下划线 连字符
写法 cpu_temperature cpu-temerature
双击 是一个单词,双击全选 是多个单词,双击只能选中一个单词,Google 搜索引擎也会以此为依据区分是单个单词还是多个。
输入 需要多按一个shift
问题 连字符对应代码里的减号,不能直接使用,在一些环境中使用连字符作为文件名会导致异常。

附录