0

最近开始使用 Ruby 进行编程,我注意到一个小语言特性真的让我很难受——以大写字母开头的变量自动成为常量。

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

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

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

另一个例子是下标——比如说,在物理问题中进行计算时,拥有F_friction并且F_weight会很有帮助,但在 Ruby 中是不可能的。

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

4

1 回答 1

5

通常解决方案只是选择更有意义的名称。例如

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

为什么F_weight有用。F代表力?

好的force_weight,呃,没有:force_mass。毕竟重量是一种力量。

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

于 2012-09-23T20:45:54.753 回答