7(2)那时一无所知

关于初恋那点小事

前面我们学了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

牛刀小试

  • 写出我们在本章开头所说的那个程序:它先让我们键入尽可能多的单词(每行键入一个单词直到我们在一个空白行里敲回车),然后程序会将我们输入的单词以字母表顺序排列并输出。
    提示:你会用到一种"sort"阵列方法:会给你一个已经排序好的阵列,用上它吧!
  • 试着重写上面程序(要求是不能用到sort阵列方法),程序中一大部分是解决排序问题,尽可能多进行练习。
    涉及高位优先排序算法,有点复杂,以后单独介绍 -----译者注
  • 重写前面5 天外有天(3)无规无矩章节中的表单输出问题:
                    Table of Contents                
                                                
Chapter 1:  Numbers                       page 1
Chapter 2:  Letters                       page 72
Chapter 3:  Variables                    page 118

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,930评论 18 399
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,456评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • 原本哦,这周六要发布的文章是一篇关于话题“职场”的“如何更好在一家新公司里发展”的文字,因为我真的有受挫过,当时挺...
    gritwang阅读 3,671评论 0 0
  • 十一月,再见,2017年的十一月,我该跟它说永别了。时间是条单行线,只会朝着一个方向一路狂奔,从不左顾右盼,更不会...
    陈琳_a1d6阅读 1,404评论 0 0