做七周七语言ruby第二天习题的时候要实现一个简单的Tree类,以下代码可以运行,但是把children.each{|c|c.visit_all(n+1){|node|puts"-#{node.node_name}"}}这行的{|node|puts"-#{node.node_name}"}改成&block就跑不起来,请问是为什么?#!/usr/bin/rubyclassTreeattr_accessor:children,:node_namedefinitialize(tree)tree.eachdo|key,value|@node_name=key@children=value.map{|(key,value)|Tree.new(key=>value)}endenddefvisit_all(n,&block)visit&blockprint''*nchildren.each{|c|c.visit_all(n+1){|node|puts"-#{node.node_name}"}}enddefvisit(&block)block.callselfendendruby_tree=Tree.new({'grandpa'=>{'day'=>{'child1'=>{},'child2'=>{}},'uncle'=>{'child3'=>{},'child4'=>{}}}})ruby_tree.visit_all(1){|node|puts"-#{node.node_name}"}ps:ruby环境是2.1.3
德玛西亚99
慕标琳琳
随时随地看视频慕课网APP
相关分类