我是红宝石的新手。我正处于尝试用 Ruby 写东西的阶段,就像我用其他语言一样。
我正在尝试向一个对象添加一个方法——比如说,一个不起眼的数组。并非针对所有阵列,仅针对一个特定阵列。此方法必须有权访问外部范围内的变量。
我的理解是,我可以使用def
向对象添加方法,但该方法无法访问外部范围内的变量。为此,我需要使用lambda
or Proc.new
,但我看不到如何将 lambda/proc 作为属性“附加”到数组。
在 JavaScript 中,这很简单,正如这个愚蠢的示例所示:
var x = 3
var array = [1, 2, 3, 4]
array.multiply_by_x = function() {
var i = this.length
while (i--) {
this[i] *= x
}
}
在 Ruby 中是否有可能与上述类似的东西?