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
最新评论