【发布时间】:2012-01-23 18:54:27
【问题描述】:
我刚接触 Ruby,来自 Java 和 C/C++ 环境。
在用 Ruby 编写第一个小项目时,我不知何故习惯于让所有局部变量都以下划线开头。我想我这样做的主要动机是更好的可读性和与方法调用的区别。
原则上只有三种类型的变量($global、@instance 和 local),绝大多数变量都以下划线开头。我不确定,这是好是坏。此外,在许多其他语言中,下划线会被替换为其他字符。
除了通常的 CamelCase 和/或 下划线分隔 之外,是否还有关于变量命名的最佳实践?专业“红宝石师”的习惯是什么?当我选择前导下划线时,我是否忽略了一些通用的 Ruby 约定?
编辑
感谢所有的答案和建议。这对我帮助很大。
下面的答案和评论的简短摘要
(针对短期访问者)
前导下划线与:
- 方法参数:
def my_method(_my_arg) - 块参数:例如
my_array.each { |_x| puts _x}
所有其他没有前导下划线的局部变量,例如来自例如JavaScript might get confused 关于变量的预期行为。
对于变量名称和方法调用之间的视觉分离,在所有方法调用中强制自己使用“(”括号“)”可能会显着提高可读性。
【问题讨论】:
-
其他语言的功能并不重要,因为每种语言都有不同的编码风格。我有时在块参数中使用带有前导下划线的变量,即
{ |_a,_b| ... },当我想让它们脱颖而出时,或者它使代码更具可读性。随着时间的推移,可读性会转化为可维护性,因此请选择最容易进出您眼睛的内容。 -
@theTinman:带有块参数的下划线似乎也是一种合理的方式。谢谢你。
-
@Torbjoern 感谢您的简短总结,非常有帮助
-
吉姆·斯图尔特的答案是 ruby 中变量的公认答案,它是用 AirBnB 的 github.com/airbnb/ruby#throwaway-variables 等风格指南编写的