下划线命名法和帕斯卡命名法哪个更好?

对比两种流行的变量和函数命名约定——下划线命名法和帕斯卡命名法。
On this page

下划线命名法和帕斯卡命名法哪个更好?

摘录§

本文讨论了在代码中使用下划线命名法和大驼峰命名法来命名变量和函数的优缺点。根据可读性、语言约定和个人偏好,提供了何时使用每种风格的指导方针。


命名约定是每个开发者都需要了解的编程的重要部分。下划线命名法和大驼峰命名法是最常见的两种命名约定。但哪种更好呢?在本文中,我们将分析每种命名约定的优缺点,以帮助您决定何时使用下划线命名法和何时使用大驼峰命名法。

介绍§

首先,让我们定义一下什么是下划线命名法和帕斯卡命名法。

下划线命名法是指用下划线分隔单词,像这样:my_variable_name帕斯卡命名法是指将单词连接在一起,并且每个新单词的首字母大写,像这样:MyVariableName

这些命名规范对于编写符合标准实践的可读代码至关重要。虽然大小写似乎微不足道,但它对于你自己和其他开发人员来说,对代码的易用性有着重要影响。

一些人喜欢下划线命名法的原因§

有几个主要原因解释了为什么一些开发人员喜欢使用下划线:

更易读§

使用下划线的代码可以更容易地解析和阅读,因为每个单词都是独立的。下划线在正常句子中起到了单词之间的空格的作用。这可以使变量和函数名更易于扫描。

例如,get_user_info() 可以说比 getUserInfo() 更容易阅读一些。

遵循自然语言惯例§

下划线命名法更接近于自然书写语言。我们通常用空格分隔单词,而不是将它们挤在一起。因此,有些人认为下划线更直观。

清晰区分单词§

对于帕斯卡命名法,有时很难确定一个单词在哪里结束,下一个单词从哪里开始,特别是对于较长的名称。下划线可以明确单词边界。

例如,isValueInRange 乍一看可能会被误读为 isValidInRange。但是 is_value_in_range 就非常清楚了。

一些人喜欢帕斯卡命名法的原因§

尽管下划线在可读性方面有一些优势,但帕斯卡命名法也有其自身的优点:

在某些语言中更常见§

PascalCase是像C#和Java这样的语言中的标准约定。所以对于习惯于这些语言的开发者来说,它会感到很熟悉。

允许camelCase§

PascalCase允许您像myVariable这样使用camelCase,这样易于输入和阅读。使用下划线就不可能实现这一点。

对某些人来说更清晰§

一些开发者认为PascalCase使代码看起来整洁和统一,没有下划线的视觉混乱。下划线可以被视为分散注意力的非字母数字字符。

何时使用哪种命名风格§

考虑到每种风格的利弊,您何时应该使用下划线命名法而不是PascalCase?以下是一些指南:

遵循语言约定§

如果您正在使用像C#或Java这样的语言,它们标准化了PascalCase,则为了一致性,请遵循该约定。

考虑个人偏好§

命名风格中有个人喜好的空间。如果您非常喜欢一种大小写风格,那么您可以在自己的代码中做出选择。

注重可读性§

可读性应该是首要考虑因素。尝试一下,看看哪种风格使复杂名称在一瞥之间更容易解析和理解。

例如,在浏览代码时,您可能会发现convert_string_to_integer()convertStringToInteger()更容易阅读。但是个人偏好因人而异。

使用工具在不同风格之间切换§

您不必手动格式化字符串以更改大小写。在线工具如StringToCamelCase和StringToSnakeCase可以立即在不同风格之间进行转换。

例如:

1// PascalCase
2StringToSnakeCase("convertStringToInteger");
3
4// Returns: convert_string_to_integer
text

这允许根据需要灵活使用不同的大小写风格。

结论§

选择下划线命名法和帕斯卡命名法之间取决于一系列权衡:

  • 下划线可以提高可读性并与自然语言相一致,但有些人认为它们很凌乱。
  • 帕斯卡命名法在某些语言中很常见,并且支持驼峰命名法,但会牺牲一些视觉分隔。

双方都有充分的论据。在所有情况和个人偏好中,没有一种约定在所有情况下都更好。

使用在线工具在不同的命名风格之间切换提供了更多的灵活性。但总体而言,最好遵守语言的约定并优先考虑可读性。

点击此处了解更多

最重要的是在代码库中保持一致的命名风格。任意混合风格会使代码更难理解。为您的项目设定一个标准的约定并坚持它。

  • All
  • English
  • 简体中文
  • Best match
  • Oldest
  • Newest
  • 2023
  • Amanda
  • Davy
  • IToolkit
  • Mia
  • 大威
  • API
  • Base64
  • Binary
  • C
  • C++
  • Checksum
  • Coding
  • Computer Science
  • CRC
  • CRC32
  • Cryptography
  • CSharp
  • CSV
  • Cyclic Codes
  • Data
  • DCOM
  • Decoding
  • Education
  • Encoding
  • Encryption
  • Functions
  • Go
  • gpt
  • Hash
  • HTML
  • Image
  • Java
  • JavaScript
  • Kotlin
  • Linux
  • Lua
  • Mac
  • MBR
  • MongoDB
  • MySQL
  • Other
  • PHP
  • Programming
  • Python
  • R
  • Redundancy
  • Rust
  • Scala
  • Security
  • SHA
  • Software
  • SQL
  • SQLServer
  • Strings
  • Swift
  • VB
  • Windows
  • Windows 7
  • Applications
  • Binary Data
  • Data Retrieval
  • Database
  • File Path
  • Image Storage
  • Language Display
  • Operating Systems
  • Srtrings
  • 编码
  • 解码