programmingruby:Programming Ruby 读书笔记( 2)

  1.再谈ruby Test

 a = [1, 3, 5, 7, 9]
 puts a[0]     #----->1
 puts a[-2]    #----->7
 puts a[1, 3]   #----->[3, 5, 7]
 puts a[-3, 2]   #----->[5, 7]
 puts a[1..3]   #----->[3, 5, 7]
 puts a[1...3]   #----->[3, 5]
 
 a[2] = 'cat'   #----->[1, 3, "cat", 7, 9]
 a[3, 2] = 'dog'  #----->[1, 3, "cat", "dog"]
 a[3, 1] = 'bee'  #----->[1, 3, "cat", "bee"]
 a[3, 0] = 'bat'  #----->[1, 3, "cat", "bat", "bee"]
 a[0...2] =    #----->["cat", "bat", "bee"]
 a[4..5] = 99, 98 #----->["cat", "bat", "bee", nil, 99, 98]
  
end


  些常用思路方法:

Test
 
 a = [0, 1, 2, 3, 4]
 b = Array.(5) { |i| i * i }  #---------->[0, 1, 4, 9, 16]
 c = a & b             #---------->[0, 1, 4]
 d = a - b             #---------->[2, 3]
 e = a + b             #---------->[0, 1, 4, 2, 3]
 f = c[0..1] << d << c[2]     #---------->[0, 1, 2, 3, 4]
 
 a.collect! { |x| x + 1 }     #---------->[1, 2, 3, 4, 5]
 a[6..7] = 7, 8          #---------->[1, 2, 3, 4, 5, nil, 7, 8]
 a.delete(7)            #a--------->[1, 2, 3, 4, 5, nil, 8]
 a.compact!            #---------->[1, 2, 3, 4, 5, 8]
 a.push 9             #---------->[1, 2, 3, 4, 5, 8, 9]
 a.pop               #---------->[1, 2, 3, 4, 5, 8]
 m = a.last(3)           #---------->[4, 5, 8]
 m.join("-")            #---------->"4-5-8"
 n = a.first(2)          #---------->[1, 2]
 n.unsht(-1, 0)         #---------->[-1, 0, 1, 2]
 n.sht              #---------->[0, 1, 2]
  
 t = %w{ a b c d }
 t.insert(2, 99)          #---------->[a, b, 99, c, d]
 t.insert(-2, 1,2,3)        #---------->[a, b, 99, c, 1, 2, 3, d]
 t.insert(-1, "e")         #---------->[a, b, 99, c, 1, 2, 3, d, e]
 
end
2.BLOCK和迭代器

Test
  
 def sayHello
  
  yield
  
  [1, 3, 5, 7, 9].each { |i| puts i.succ }
  
  puts [1, 3, 5, 7].inject(0) { |sum, element| sum + element }
  
  puts [1, 3, 5, 7].inject(1) { |product, element| product * element }
  
 end
  
end
  
test = Test.
test.sayHello { puts "hello " * 3 }


  输出:

  hello

  hello

  hello

  2

  4

  6

  8

  10

  16

  105

Tags:  programmingruby

延伸阅读

最新评论

发表评论