gpt4 book ai didi

ruby - 来自 Tree::TreeNode 的方法不起作用

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

我有一个关于 ruby 的问题。我正在用 ruby​​ 编写一些代码,我想使用一棵树。我决定使用 Tree::TreeNode 类。看这里http://www.rubydoc.info/github/evolve75/RubyTree/Tree/TreeNode用于文档。

这是我第一次使用 gem。我在终端中运行 sudo gem install tr​​ee 并将 require 'tree' 添加到我的 ruby​​ 文件的开头。在大多数情况下它是有效的。我可以初始化节点并且大多数方法都有效。但是,#each_leaf#children 等一些方法不起作用。这是示例代码:

require 'tree'
node1 = Tree::TreeNode.new('node1',1)
node2 = Tree::TreeNode.new('node2',2)
node1.add(node2)
node1.each_leaf { |node| puts "name: #{node.name}, content: #{node.content}"}

当我运行它时,我收到以下错误消息:

test.rb:5:in `<main>': undefined method `each_leaf' for #<Tree::TreeNode:0x007fc2a905e560> (NoMethodError)

但是当我用 each_leaf 替换为 each 运行代码时,它完美地工作(当然我得到节点 1 和 2 的信息,而如果它工作 each_leaf 应该只给我节点 2 的信息)。

查看 TreeNode 的文档,我注意到所有对我不起作用的方法都列在 Tree::TreeNode+ 旁边,而不是 树::树节点。我还没弄明白这是什么意思。我是否必须做一些额外的事情或安装其他 gem 才能获得这些方法?感谢您的帮助!

最佳答案

这是因为 ruby​​gems.org 上的 gem 版本落后于 github 上的最新版本(从中生成文档)。您可以使用以下方式安装 github 版本:

gem install specific_install
gem specific_install -l https://github.com/evolve75/RubyTree.git

或者只是将它添加到您的Gemfile:

gem 'tree', github: 'evolve75/RubyTree'

更新:看起来它确实有 ruby​​gems 的最新版本,但它被重命名为 ruby​​tree,因此

gem uninstall tree
gem install rubytree

但是像以前一样需要“树”

关于ruby - 来自 Tree::TreeNode 的方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37422913/

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