我知道这是一个扭曲的标题...我是 ruby 编程新手,这是我的问题:
有两个文件包含不同的函数,其中一个正在调用另一个
文件a.rb:
def f1(v1)......
文件b.rb:
load "a.rb"<br/>
def f2(v2)......
以上两个文件都位于父目录中。现在如果我打电话b.rb
在当前目录中使用 load
或require
,我也会有同样的错误:
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)......
关于Ruby:正确加载父目录中的文件,该文件依赖于另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205348/