Rubyは初めてです。私は、他の言語と同じように、Rubyで物事を書き込もうとして失敗している段階にあります。
オブジェクトにメソッドを追加しようとしています。たとえば、控えめな配列です。すべてのアレイではなく、1つの特定のアレイだけです。このメソッドは、外部スコープの変数にアクセスできる必要があります。
私の理解ではdef
、オブジェクトにメソッドを追加するために使用できますが、メソッドは外部スコープの変数にアクセスできません。そのためにはlambda
orを使用する必要がありますProc.new
が、ラムダ/プロシージャをプロパティとして配列に「アタッチ」する方法がわかりません。
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で可能ですか?