《七周七语言》之ruby练习2
来源:互联网 发布:剑道眼镜知乎 编辑:程序博客网 时间:2024/05/16 07:28
有一个数组,包含16个数字。仅用each方法打印数组中的内容,一次打印4个数字。然后,用可枚举模块的each_slice方法重做一遍。
myarray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]myarray[0..3].each{|a| puts a}myarray[4..7].each{|a| puts a}myarray[8..11].each{|a| puts a}myarray[12..15].each{|a| puts a}myarray.each_slice(4){|a| puts a}
我们前面实现了一个有趣的树类Tree,但它不具有简洁的用户接口,来设置一棵新树,为它写一个初始化方法,接受散列表和数组嵌套的结构。写好之后,你可以这样设置新树:{'grandpa' => { 'dad' => {'child 1' => {}, 'child 2' => {} }, 'uncle'=> {'child 3' => {}, 'child 4' => {} } } }。
class Tree attr_accessor :children, :node_name def initialize(tree = {}) @node_name = tree.keys()[0] @chlidren = [] puts @node_name if @node_name tree[@node_name].each do |key, value| puts key puts value @children.push(Tree.new({key=>value})) end end end def visit_all(&block) visit &block children.each{|c| c.visit_all &block} end def visit(&block) block.call self endendmy_hash_table2 = { 'dad' => {'child 1' => {}, 'child 2' => {} } }my_hash_table1 = {'grandpa' => { 'dad' => {'child 1' => {}, 'child 2' => {} }, 'uncle'=> {'child 3' => {}, 'child 4' => {} } } }my_tree = Tree.new(my_hash_table2)puts "visting a node"my_tree.visit {|node| puts node.node_name}putsputs "visiting entire tree"my_tree.visit_all {|node| puts node.node_name}puts这段代码一直报错,in `block in initialize': undefined method `push' for nil:NilClass (NoMethodError)
我也不知道为什么了。@children根本没有机会等于nil啊。??先把错误放里吧。。
写一个简单的grep程序,把文件中出现某词组的行全都打印出来。这需要使用简单的正则表达式匹配,并从文件中读取各行。(这在Ruby中超乎想象地简单。)如果你愿意的话,还可以加上行号。
tar = ARGV.shiftARGV.each_with_index {|l, i| puts "#{ARGF.filename} #{i}:#{l} if /#{tar}/.match(l)"}
使用:ruby grep.rb tar file1 file2网上看到的,暂时看不懂,先放这里。。
0 0
- 《七周七语言》之ruby练习2
- 《七天七语言》之Ruby练习1
- 七周七语言:Ruby Day 2
- 七周七语言之Ruby代码欣赏(命令式编程语言)
- ruby入门练习之String对象
- 七周七语言:Ruby Day 1
- 读书笔记之《七周七语言——理解多种编程范型》Ruby语言学习
- Ruby语言的特别之处
- Ruby语言入门之Hello world
- c语言之指针练习
- Ruby语言
- Ruby语言
- ruby语言
- c语言练习2
- C语言练习(2)
- SQL语言练习2
- C语言练习2
- ruby小练习
- 【NOIP2013模拟】KC看星
- 最近笔记3
- sdut 3252 Lowest Unique Price set
- 二维数组查找目标值
- 第11周补充项目3-点类派生直线类
- 《七周七语言》之ruby练习2
- Interface Default Static
- POJ 1003 (水题)
- Caffe框架源码剖析(1)—构建网络
- Hello World
- 论文阅读:Dynamic Software Updates: A VM-centric Approach
- java中path和CLASSPATH的配置和意义解析
- Real-Time Rendering 翻译 2.渲染管线
- 蚁群算法解TSP问题