Ruby标准库Array方法详解

5星 · 超过95%的资源 需积分: 9 16 下载量 43 浏览量 更新于2024-07-27 收藏 1015KB DOC 举报
"这篇文档是关于Ruby编程语言的标准库,特别是对Array类的详细方法介绍。文档以中文呈现,适合Ruby开发和学习者参考。它列出了Array类的各种实例方法和类方法,包括但不限于数组的创建、操作、查找、排序等常见功能。" 在Ruby中,Array是一个非常重要的内置数据结构,用于存储有序的元素集合。这个文档详细地介绍了Array类的各种方法,可以帮助开发者理解和使用这些方法来处理数组。 1. Array类方法: - `[]`:创建一个新的数组,可以接受变量参数或一个范围。 - `new`:创建一个空数组或者指定大小的填充数组。 2. Array实例方法: - `&`:进行交集操作,返回两个数组的公共元素。 - `|`:进行并集操作,返回两个数组的所有不重复元素。 - `*`:重复合并数组,可以与数字结合表示重复次数。 - `+`:将两个数组连接在一起,形成新的数组。 - `-`:从一个数组中移除另一个数组中的元素,返回新数组。 - `<<`:在数组末尾添加元素。 - `<==>`:比较两个数组的大小,基于元素的自然顺序。 - `==`:检查两个数组是否相等,元素和顺序都要相同。 - `[]`:获取数组中指定索引的元素。 - `[]=`:设置数组中指定索引的元素。 - `assoc`:在哈希数组中查找匹配的键值对。 - `at`:获取数组中指定位置的元素。 - `clear`:清空数组的所有元素。 - `collect`/`map`:对数组的每个元素应用块,生成新的数组。 - `compact`:移除数组中的nil元素。 - `compact!`:移除数组中的nil元素,并修改原数组。 - `concat`:将一个或多个数组追加到当前数组。 - `delete`:删除数组中第一个匹配的元素。 - `delete_at`:根据索引删除数组中的元素。 - `delete_if`:删除满足条件的元素,修改原数组。 - `each`:遍历数组中的每个元素。 - `each_index`:遍历数组的索引。 - `empty?`:检查数组是否为空。 - `eql?`:检查两个数组的元素及其顺序是否完全相同。 - `fetch`:获取数组中指定索引的元素,如果不存在则可以抛出异常或返回默认值。 - `fill`:用指定的值填充数组的一部分或全部。 - `first`:返回数组的第一个元素。 - `flatten`:将嵌套的数组展开为一维数组。 - `include?`:检查数组是否包含特定元素。 - `index`:查找数组中首次出现特定元素的位置。 - `indexes`/`indices`:返回数组中所有元素在原数组中第一次出现的索引。 - `insert`:在指定位置插入一个或多个元素。 - `join`:将数组元素连接成字符串,可以指定分隔符。 - `last`:返回数组的最后一个元素。 - `length`:返回数组的元素个数。 - `map!`:对数组的每个元素应用块,直接修改原数组。 - `nitems`:返回数组中不为`nil`的元素数量。 - `pack`:将数组元素转换为二进制字符串。 - `pop`:移除并返回数组的最后一个元素。 - `push`:向数组末尾添加一个或多个元素。 - `rassoc`:在关联数组中查找匹配的值。 - `replace`:用新数组替换当前数组的内容。 - `reverse`/`reverse!`:反转数组,`reverse!`会修改原数组。 - `reverse_each`:反向遍历数组。 - `rindex`:查找数组中最后出现特定元素的位置。 - `shift`:移除并返回数组的第一个元素。 - `size`:返回数组的元素个数,与`length`相同。 - `slice`:根据索引或范围获取数组的一部分。 - `slice!`:根据索引或范围删除数组的一部分,并返回被删除的元素。 - `sort`/`sort!`:对数组元素进行排序,`sort!`会修改原数组。 - `to_a`:返回数组本身(通常用于兼容性)。 - `to_ary`:将对象转换为数组。 - `to_s`:将数组转换为字符串。 - `transpose`:将二维数组转置为多列数组。 - `uniq`/`uniq!`:移除数组中的重复元素,`uniq!`会修改原数组。 - `unshift`:在数组开头添加一个或多个元素。 - `values_at`:返回数组中指定索引对应的元素。 - `reject!`:删除满足条件的元素,修改原数组。 这个列表涵盖了Array类的大部分常用操作,是Ruby开发中不可或缺的参考资料。通过理解和熟练使用这些方法,开发者可以更高效地处理数组数据。