Назовите меня новичком/noob, это мой первый раз с OO, с деревьями и с Ruby. Однако, я думал, что я мог бы добавить узел к ранее созданному один, как это делается в следующем фрагменте:Rubytree Tree :: TreeNode.new не работает для узла без полномочий root
#!/usr/bin ruby
# simple_trial_tree.rb
require 'tree'
root_node = Tree::TreeNode.new("origin", "Push button")
root_node << Tree::TreeNode.new("assets", "assets")
root_node.print_tree
хорошо печатает это минимальное дерево:
* origin
+---> assets
Но тогда, если Я пытаюсь добавить так же, как ребенок к узлу assets
, например, так:
require 'tree'
root_node = Tree::TreeNode.new("origin", "Push button")
root_node << Tree::TreeNode.new("assets", "assets")
assets << Tree::TreeNode.new("assets_av", "av")
root_node.print_tree
я simple_trial_tree.rb:17:in ``<main>': undefined local variable or method ``assets' 'for main:Object (NameError)
(с двойными обратными клещами быть г как единичные). Однако следующий способ действительно работает:
require 'tree'
root_node = Tree::TreeNode.new("origin", "Push button")
assets = Tree::TreeNode.new("assets", "assets")
root_node.add(assets)
assets_av = Tree::TreeNode.new("assets_av", "av")
assets.add(assets_av)
root_node.print_tree
и дает:
* origin
+---+ assets
+---> assets_av
Теперь я немного запутался, как в the manual of Rubytree целом ветвь с узлами могут быть добавлены в «о» пути Я попробовал это сделать (я думаю, проблема кроется в «о»). Что я здесь делаю неправильно?
где в руководстве вы видите использование переменной перед ее определением? – niceman
Это была путаница. Я видел узел, вставленный перед его определением, и я предположил, что вставка также является определением с первой переменной как ее именем, определяющим сам узел. – HarryH