4.1 Naming conventions

见微知著, 见名知意

Ruby Javascript Go Lua
通用命名约定 underscore_case camelCase camelCase underscore_case

虽然各语言没有强制要求以上命名约定, 但是用户程序命令, 和语言内置函数/标准库的函数和变量命名格式保持一致, 是一种不错的最佳实践.

大部分语言的命令规则基本一致:

  • 需要以字母或者下划线开头, 多个字母, 下划线和数组组合而成
  • 区分大小写
  • 下划线变量通常代表可忽略变量

有些特例, 比如在Ruby的标识符中, 可能出现= ? $ @ 等, 它们都有特殊的使用场景.


1. Ruby

  • 大写字母开头的标识符是常量 (对常量的修改只有警告, 没有错误)
  • 语法上, 多单词常量有两种写法: LikeThis LIKE_THIS, 不过通用语法规范支持后者
  • 非常量的多单词标识符使用underscore_case命名
  • $开头的变量是全局变量
  • @开头的变量是实例变量
  • @@开头的变量是类变量
  • _或者小写字母开头的变量是局部变量
  • 作为惯例, 以布尔值为返回值的方法名, 以?结尾
  • =结尾的方法, 在调用时可以省略=, 通常用于定义赋值操作

特殊字面量

  • __FILE__ 当前正在执行的文件名称, 在错误消息里很有用
  • __LINE__ 当前正在执行的代码行数
  • __ENCODING__ 当前文件的编码对象

2. Javascript

  • 构造函数(类)以大写字母开头, 不过这仅是通用语言规范, 语言本身未做限制.

3. Go

  • 大写开头的标识符为导出成员

  • _ 通常作为忽略占位符使用 可以作为表达式的左值, 无法读取内容

    还可以用在规避编译器对未使用变量的检测

    _预置成员, 不能重新定义


4. Lua

  • 下划线加大写字母的标识符通常是Lua的保留字, 命令是不建议使用, 如_VERSION
  • 虚变量_通常用于忽略函数多返回值中不使用的变量:

    local _, x = string.find(s, p)

    不过_和普通变量名无区别, 可以读取和重新赋值, 如上的使用方式只是代码风格的要求

results matching ""

    No results matching ""