需要多个文件才能满足' require_relative&#39 ;?

时间:2017-04-06 21:13:20

标签: ruby

我正在实现Huffman代码,需要在我的Huffman_Code.rb类中使用Huffman_Tree.rb类和Huffman_Tree_Node_values.rb类。我会简化,所以我不发布所有代码。我收到了这个错误:

Huffman_Code.rb:54:in `create_tree': uninitialized constant 
HuffmanCode::HuffmanTree (NameError)
    from Huffman_Code.rb:15:in `encode'
    from Huffman_Code.rb:82:in `<main>'

以下是代码:

require_relative 'Huffman_Tree_Node_Values'
require_relative 'Huffman_Tree'

Class Huffman_Code
    def create_tree
        right_child = Huffman_Tree.new(right_child_data)
    end
end

如果我不需要任何相关内容,这就是我得到的错误。它使用Huffman_Tree_Node_Values.rb,但不加载Huffman_Tree.rb类。我如何需要多个课程?

1 个答案:

答案 0 :(得分:1)

问题似乎与您的require_relative语句无关。从文档: http://ruby-doc.org/core-2.1.2/Kernel.html

  

Ruby尝试加载名为string的库相对于require   文件的路径。如果无法确定文件的路径,则为LoadError   提高。如果加载文件,则返回true,否则返回false。

因此,如果您的文件未加载,则会出错。

您需要初始化Huffman_Code类,无论您从哪里调用它,都可以访问该定义。