算术代码中的Ruby大写字母变量困境

时间:2012-09-23 20:25:30

标签: ruby naming-conventions

最近开始使用Ruby编程,我注意到一个小语言功能真的让我很难 - 以大写字母开头的变量是自动常量。

虽然我知道这是设计的,并且在大多数情况下确实有帮助,但一旦开始编写算法就会成为一个问题。我的意思是代码需要有效且容易地区分变量 - 比如nN

这是一个非常简单的例子(我知道它不是一个完全有效的/ ruby​​esque代码,但我希望它说明了我的观点):

def average(array)
  N = 0
  array.each { |n| N += n }
  N/array.length.to_f
end

另一个例子是下标 - 比如,在物理问题中进行计算时,F_frictionF_weight会有所帮助,但在Ruby中是不可能的。

所以,问题是:是否有一种可接受的处理这些变量名的方法?

1 个答案:

答案 0 :(得分:5)

通常,解决方案只是选择更有意义的名称。 E.g。

def average(values)
  total = 0
  values.each { |value| total += value }
  total/values.length.to_f
end

为什么F_weight会有所帮助。 F代表Force?

很好force_weight,呃不:force_mass。毕竟重量是一种力量。

现在,如果您在自然数字集合中讨论N,如果N不是局部变量,我可以看到一些观点。