RubyRuby入门程序员

7(2)那时一无所知

2017-10-03  本文已影响21人  彩虹门票
关于初恋那点小事

前面我们学了each方法,阵列中还有其他方法……几乎和字符串中的方法一样多!事实上它们中的几个(例如lengthreverse+*)在阵列中使用方法与在字符串中一样,唯一区别只在于它们计算的是阵列中的元素而不是字符串中的字母。而lastjoin是阵列中特有的方法,pushpop两种方法会改变其处理的阵列。和字符串中的方法一样,你不需要记住所有方法,只要知道在哪能找到就足够了(当然是来这里找)。

首先让我们看看to_sjoinjointo_s很类似,只是join会在阵列的对象中用于增加字符串。看下面这个例子:

foods = ['artichoke', 'brioche', 'caramel']

puts foods
puts
puts foods.to_s
puts
puts foods.join(', ')
puts
puts foods.join('  :)  ') + '  8)'

200.times do
  puts []
end

正如你所看到的,puts在输出阵列时与输出其他对象是不同的:puts会依次在每行输出阵列中的对象,因此输出一个空阵列200次的代码实际上并不会输出任何东西,空阵列并不指向任何对象,所以没有任何对象来输出(重复200次没输出任何东西,依旧是没输出)。试试输出一个包括其他阵列的阵列,会发生什么?
答案是:依旧会类似的输出内部阵列中相应的对象

你会注意到我在想输出一个空行时我忽略掉了空字符(本应该是puts ‘ ’),这样同样也会输出一个空行。

接下来我们一同看看pushpoplastpushpop是相互对立的,就像+-一样。push在阵列末尾增加一个对象,pop会移除阵列中最后一个对象并告诉你具体移除的对象是什么。lastpop类似,会告诉你阵列中最后一个对象是什么,但不会改动阵列,而pushpop却会改动阵列:

favorites = []
favorites.push 'raindrops on roses'
favorites.push 'whiskey on kittens'

puts favorites[0]
puts favorites.last
puts favorites.length

puts favorites.pop
puts favorites
puts favorites.length

牛刀小试

                    Table of Contents                
                                                
Chapter 1:  Numbers                       page 1
Chapter 2:  Letters                       page 72
Chapter 3:  Variables                    page 118

用一个包含表单中所有内容的阵列来写程序,用阵列中的方法来输出一个排版优美的表单。


至此我们已经学到了许多各式各样的阵列方法,接下来轮到我们来创建属于我们自己的阵列方法了。

上一篇 下一篇

猜你喜欢

热点阅读