gpt4 book ai didi

ruby - 如何在 Ruby 中传递变量?

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

继我的另一个问题得到了很好的解决之后 How to generate a file with the names of the methods in class?

现在我有另一个关于代码的问题:

basedir = "."
files = Dir.new(basedir).entries
files.each do |file|
tests = file.match(/(.+)_tests.rb/)
puts tests if tests
end

#here i need to use "tests" variable again ..

tests.each do |test|
File.open(test).each_line do |line|
match = line.match(/def (.+)/)
puts match[1] if match
end
end

给我错误:

  match_test_methods.rb:10: undefined local variable or method `tests' for main:Object (NameError)

我想,问题是“tests”变量是在 files.each do 方法中产生和埋藏的。我如何在全局范围内使用它?到目前为止没有任何效果......

谢谢。

最佳答案

您可以在迭代之前定义它:

tests = nil
basedir = "."
files = Dir.new(basedir).entries
files.each do |file|
tests = file.match(/(.+)_tests.rb/)
puts tests if tests
end

# now tests will be available here

关于ruby - 如何在 Ruby 中传递变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7911431/

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