gpt4 book ai didi

ruby - 在方法中访问局部变量

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:27 24 4
gpt4 key购买 nike

以下是我正在尝试做的示例代码..

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

在这里,我如何访问外部方法内部的变量以及如何声明方法的原型(prototype),因为我希望它的定义写在最后?

最佳答案

您可以通过使用实例变量来实现在方法之外使用变量。

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")

我不太确定您的最终目标是什么,给定您的最小代码示例。然而,阅读有关过程、 block 和 lambda 的内容可能会有所帮助。 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

关于ruby - 在方法中访问局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com