gre*_*sov 0 ruby naming-conventions
最近开始使用Ruby编程时,我注意到一个小语言功能真的让我很难 - 以大写字母开头的变量是自动常量.
虽然我知道这是设计的,并且在大多数情况下确实有帮助,但一旦开始编写算法就会成为一个问题.我的意思是代码需要有效且容易地区分变量 - 比如说n和N.
这是一个非常简单的例子(我知道它不是一个完全有效/ rubyesque代码,但我希望它说明了我的观点):
def average(array)
N = 0
array.each { |n| N += n }
N/array.length.to_f
end
Run Code Online (Sandbox Code Playgroud)
另一个例子是下标 - 例如,在物理问题中进行计算时,在Ruby中使用F_friction并且F_weight有用但不可能.
所以,问题是:是否有一种可接受的处理这些变量名称的方法?
通常,解决方案只是选择更有意义的名称.例如
def average(values)
total = 0
values.each { |value| total += value }
total/values.length.to_f
end
Run Code Online (Sandbox Code Playgroud)
为什么有F_weight帮助.F代表力?
好的force_weight,呃不:force_mass.毕竟重量是一种力量.
现在,如果你在自然数集中谈论N,我可以看到一些点,如果N不是局部变量.