gpt4 book ai didi

Ruby:正确加载父目录中的文件,该文件依赖于另一个文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:37 24 4
gpt4 key购买 nike

我知道这是一个扭曲的标题...我是 ruby​​ 编程新手,这是我的问题:

有两个包含不同函数的文件,其中一个正在调用另一个

文件 a.rb:
def f1(v1)......

文件b.rb:
load "a.rb"<br/>
def f2(v2)......

以上两个文件都在父目录中。现在如果我调用 b.rb在当前目录中使用 loadrequire ,我也会有同样的错误:


LoadError: cannot load such file -- <strong>a.rb</strong><br/>
from /Users/username/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in <code>require'
from /Users/username/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in</code>require'
from /Users/username/<strong>b.rb</strong>:1:in `'

针对这种情况,我想出了两个解决方案:
1)把f2进入文件 a.rb .
2) 或删除 load "a.rb" 行在文件中b.rb , 和 load这两个文件都在我的实现中。

但我认为任何一种方式都会破坏这两个文件之间的逻辑关系/区别。这两个文件面临不同类型的问题,而函数 f2没有 f1 就无法执行任何操作.

我的问题是:有什么方法可以将两个文件中的两个函数分开,同时只加载一次(不知道函数之间的任何依赖关系)?

最佳答案

在文件 b.rb 中:

require_relative "./a.rb"
def f2(v2)......

参见 http://extensions.rubyforge.org/rdoc/classes/Kernel.html

关于Ruby:正确加载父目录中的文件,该文件依赖于另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205348/

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