以下是我想要做的示例代码..
debug = false
debug_file = "debug.txt"
terminate_tool
def terminate_tool
info_string = "Terminating tool execution ...\n"
print info_string
File.open(debug_file, "a") { |file| file.print info_string } if debug
end
在这里,我如何访问方法内部的变量以及如何声明方法的原型,因为我希望它的定义在最后写入?
答案 0 :(得分:0)
您可以使用实例变量在方法外部使用变量。
def terminate_tool
p @debug_file # "debug.txt"
end
@debug_file = "debug.txt"
terminate_tool
我建议将其传递给方法。
def terminate_tool(debug_file)
p debug_file # "debug.txt"
end
terminate_tool("debug.txt")
我不确定你的最终目标是什么给你的最小代码样本。但是阅读关于过程,块和lambdas可能会有所帮助。 http://innig.net/software/ruby/closures-in-ruby.html
另外,实例变量不会传递给类的实例。
def terminate_tool
p @debug_file # "debug.txt"
end
class A
def foo
p @debug_file # nil
end
end
@debug_file = "debug.txt"
terminate_tool
a = A.new
a.foo