38
これについては簡単な答えがあると確信しています。私はそれを見つけるように見えない。私はRubyでネストされた関数を作った、と私はトラブル内側の関数の内部、外部関数から変数へのアクセスを持っていた:入れ子関数内の外部変数にアクセスするRuby
def foo(x)
def bar
puts x
end
bar
42
end
foo(5)
私が手:NameError: undefined local variable or method
X」をメイン用:Object`
類似したPythonコード作品:
def foo(x):
def bar():
print x
bar()
return 42
foo(5)
私はRubyで同じことをやりますか?
ここで重要なの(微妙な)違いはデフ...最後は法ではなく、関数を定義していることである:あなたの代わりに何ができるか
はPROCを使用しています。 tadmanが示すように、lambda/procを使用して関数を定義し、クロージャ内のローカル変数を取得します。 – rampion