Ruby 数组(Array)

上传人:油条 文档编号:20320888 上传时间:2017-10-09 格式:PDF 页数:7 大小:161.49KB
返回 下载 相关 举报
Ruby 数组(Array)_第1页
第1页 / 共7页
Ruby 数组(Array)_第2页
第2页 / 共7页
Ruby 数组(Array)_第3页
第3页 / 共7页
Ruby 数组(Array)_第4页
第4页 / 共7页
Ruby 数组(Array)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Ruby 数组(Array)》由会员分享,可在线阅读,更多相关《Ruby 数组(Array)(7页珍藏版)》请在金锄头文库上搜索。

1、Ruby 数组(Array)Ruby 数组Ruby 数组是任何对象的有序的、整数索引的集合。数组中的每个元素都与个索引相关,并可通过索引进获取。数组的索引从 0 开始,这与 C 或 Java 中样。个负数的索引时相对于数组的末尾计数的,也就是说,索引为 -1 表数组的最后个元素,-2 表数组中的倒数第个元素,依此类推。Ruby 数组可存储诸如 String、 Integer、 Fixnum、 Hash、 Symbol 等对象,甚可以是其他 Array 对象。Ruby 数组不像其他语中的数组那么刚性。当向数组添加元素时,Ruby 数组会动增长。创建数组有多种式创建或初始化数组。种式是通过 new

2、 类法:names = Array.new您可以在创建数组的同时设置数组的:names = Array.new(20)数组 names 的或长度为 20 个元素。您可以使 size 或 length 法返回数组的:#!/usr/bin/rubynames = Array.new(20)puts names.size # 返回 20puts names.length # 返回 20这将产以下结果:2020您可以给数组中的每个元素赋值,如下所:#!/usr/bin/rubynames = Array.new(4, mac)puts #names这将产以下结果:macmacmacmac您也可以使带有

3、 new 的块,每个元素使块中的计算结果来填充:#!/usr/bin/rubynums = Array.new(10) |e| e = e * 2 puts #nums这将产以下结果:024681012141618数组还有另种法,如下所:nums = Array.(1, 2, 3, 4,5)数组创建的另种形式如下所:nums = Array1, 2, 3, 4,5在核 Ruby 中可的 Kernel 模块有个 Array 法,只接受单个参数。在这,该法带有个范围作为参数来创建个数字数组:#!/usr/bin/rubydigits = Array(0.9)puts #digits这将产以下结果:

4、0123456789数组内建法我们需要有个 Array 对象的实例来调 Array 法。下是创建 Array 对象实例的式:Array.(.) or Array. or .这将返回个使给定对象进填充的新的数组。现在,使创建的对象,我们可以调任意可的实例法。例如:#!/usr/bin/rubydigits = Array(0.9)num = digits.at(6)puts #num这将产以下结果:6下是公共的数组法(假设 array 是个 Array 对象):序号法 & 描述1 array & other_array返回个新的数组,包含两个数组中共同的元素,没有重复。2array int or

5、 array str返回个新的数组,新数组通过连接 self 的 int 副本创建的。带有 String 参数时,相当于 self.join(str)。3 array + other_array返回个新的数组,新数组通过连接两个数组产第三个数组创建的。4array - other_array返回个新的数组,新数组是从初始数组中移除了在 other_array 中出现的项的副本。5str other_str把 str 与 other_str 进较,返回 -1(于)、0(等于)或 1(于)。较是区分写的。6 array | other_array通过把 other_array 加 array 中,

6、移除重复项,返回个新的数组。7array other_array如果数组于、等于或于 other_array,则返回个整数(-1、 0 或 +1)。9array = other_array如果两个数组包含相同的元素个数,且每个元素与另个数组中相对应的元素相等(根据 Object.=),那么这两个数组相等。10arrayindex or arraystart, length orarrayrange or array.slice(index) orarray.slice(start, length) or array.slice(range)返回索引为 index 的元素,或者返回从 start

7、 开始直 length 个元素的数组,或者返回 range 指定的数组。负值索引从数组末尾开始计数(-1 是最后个元素)。如果 index(或开始索引)超出范围,则返回 nil。11arrayindex = obj orarraystart, length = obj or an_array or nil orarrayrange = obj or an_array or nil设置索引为 index 的元素,或者替换从 start 开始直 length 个元素的数组,或者替换 range 指定的数组。如果索引于数组的当前容量,那么数组会动增长。负值索引从数组末尾开始计数。如果 length

8、为零则插元素。如果在第种或第三种形式中使了 nil,则从 self 删除元素。12array.abbrev(pattern = nil)为 self 中的字符串计算明确的缩写集合。如果传递个模式或个字符串,只考虑当字符串匹配模式或者以该字符串开始时的情况。13array.assoc(obj)搜索个数组,其元素也是数组,使 obj.= 把 obj 与每个包含的数组的第个元素进较。如果匹配则返回第个包含的数组,如果未找到匹配则返回nil。14array.at(index)返回索引为 index 的元素。个负值索引从 self 的末尾开始计数。如果索引超出范围则返回 nil。15 array.cle

9、ar从数组中移除所有的元素。16array.collect |item| block orarray.map |item| block 为 self 中的每个元素调次 block。创建个新的数组,包含 block 返回的值。17array.collect! |item| block orarray.map! |item| block 为 self 中的每个元素调次 block,把元素替换为 block 返回的值。18 pact返回 self 的副本,移除了所有的 nil 元素。19 pact!从数组中移除所有的 nil 元素。如果没有变化则返回 nil。20 array.concat(othe

10、r_array)追加 other_array 中的元素到 self 中。21array.delete(obj) or array.delete(obj) block 从 self 中删除等于 obj 的项。如果未找到相等项,则返回 nil。如果未找到相等项且给出了可选的代码 block,则返回 block 的结果。22 array.delete_at(index)删除指定的 index 处的元素,并返回该元素。如果 index 超出范围,则返回 nil。23 array.delete_if |item| block 当 block 为 true 时,删除 self 的每个元素。24 array

11、.each |item| block 为 self 中的每个元素调次 block,传递该元素作为参数。25 array.each_index |index| block 与 Array#each 相同,但是传递元素的 index,不是传递元素本。26 array.empty?如果数组本没有包含元素,则返回 true。27array.eql?(other)如果 array 和 other 是相同的对象,或者两个数组带有相同的内容,则返回true。28array.fetch(index) or array.fetch(index, default) or array.fetch(index) |i

12、ndex| block 尝试返回位置 index 处的元素。如果 index 位于数组外部,则第种形式会抛出IndexError 异常,第种形式会返回 default,第三种形式会返回调 block 传index 的值。负值的 index 从数组末尾开始计数。array.fill(obj) or29array.fill(obj, start , length) orarray.fill(obj, range) orarray.fill |index| block orarray.fill(start , length ) |index| block orarray.fill(range) |i

13、ndex| block 前三种形式设置 self 的被选元素为 obj。以 nil 开头相当于零。nil 的长度相当于 self.length。最后三种形式 block 的值填充数组。block 通过带有被填充的每个元素的绝对索引来传递。30array.first or array.first(n)返回数组的第个元素或前 n 个元素。如果数组为空,则第种形式返回 nil,第种形式返回个空的数组。31 array.flatten返回个新的数组,新数组是个维的扁平化的数组(递归)。32 array.flatten!把 array 进扁平化。如果没有变化则返回 nil。(数组不包含数组。)33 ar

14、ray.frozen?如果 array 被冻结(或排序时暂时冻结),则返回 true。34 array.hash计算数组的哈希代码。两个具有相同内容的数组将具有相同的哈希代码。35 array.include?(obj)如果 self 中包含 obj,则返回 true,否则返回 false。36 array.index(obj)返回 self 中第个等于 obj 的对象的 index。如果未找到匹配则返回 nil。37array.indexes(i1, i2, . iN) orarray.indices(i1, i2, . iN)该法在 Ruby 的最新版本中被废弃,所以请使 Array#va

15、lues_at。38array.indices(i1, i2, . iN) orarray.indexes(i1, i2, . iN)该法在 Ruby 的最新版本中被废弃,所以请使 Array#valuesat。39 array.insert(index, obj.)在给定的 index 的元素前插给定的值,index 可以是负值。40 array.inspect创建个数组的可打印版本。41array.join(sep=$,)返回个字符串,通过把数组的每个元素转换为字符串,并使 sep 分隔进创建的。42 array.last or array.last(n)返回 self 的最后个元素。如果数组为空,则第种形式返回 nil。43 array.length返回 self 中元素的个数。可能为零。44array.map |item| block orarray.collect |item| block 为 self 的每个元素调次 block。创建个新的数组,包含 block 返回的值。45

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号