Я новичок в Ruby. Я нахожусь на стадии, когда я безуспешно пытаюсь написать что-то на Ruby, как на каком-то другом языке.
Я пытаюсь добавить метод к объекту - скажем, скромный массив. Не для всех массивов, только для одного конкретного. Этот метод должен иметь доступ к переменной во внешней области видимости.
Насколько я понимаю, я могу использовать def
для добавления метода к объекту, но у этих методов нет доступа к переменным во внешней области видимости. Для этого мне нужно будет использовать lambda
или Proc.new
, но я не вижу, как бы я "прикрепил" лямбда / 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?