Ruby标准库深入解析:Array方法详解

4星 · 超过85%的资源 需积分: 10 11 下载量 71 浏览量 更新于2024-07-28 收藏 1.48MB DOC 举报
"Ruby标准库包含了丰富的内置类和模块,提供了许多方便的功能。在这里,我们将重点关注Ruby的Array类及其实例方法,这些方法对于处理数组数据至关重要。 Array类是Ruby中的核心数据结构之一,用于存储有序的元素集合。它提供了多种操作和检索元素的方法,如创建、修改、遍历和排序等。以下是一些Array类的重要实例方法: 1. `[]`: 这个方法用于创建一个新的数组,可以接受零个或多个参数,每个参数将成为新数组的元素。 2. `new`: 构造函数,创建一个空数组或者基于给定元素的数组。 3. `&`: 对两个数组进行交集操作,返回一个新的包含共同元素的数组。 4. `|`: 对两个数组进行并集操作,返回一个新的包含所有不重复元素的数组。 5. `*`: 当用整数乘以数组时,会复制数组若干次;当与另一个数组相乘时,会将两个数组连接起来。 6. `+`: 连接两个数组,返回一个新的数组。 7. `-`: 从第一个数组中移除第二个数组的所有元素,返回新的数组。 8. `<<`: 在数组末尾添加一个元素。 9. `<=>`: 比较两个数组的顺序,根据元素的自然顺序。 10. `==`: 检查两个数组是否包含相同的元素,顺序可以不同。 11. `[]`: 获取数组中指定索引处的元素,或通过范围获取子数组。 12. `[]=`: 修改数组中指定位置的元素,或通过范围替换子数组。 13. `assoc`: 查找与给定元素匹配的第一个元组(由连续两个元素组成)。 14. `at`: 返回数组中指定索引处的元素。 15. `clear`: 清空数组,使其变得为空。 16. `collect`/`map`: 对数组中的每个元素应用一个块,并返回新的数组,包含块的结果。 17. `compact`: 删除数组中的所有nil元素,返回新的数组。 18. `compact!`: 删除数组中的所有nil元素,直接修改原数组。 19. `concat`: 将一个或多个数组连接到当前数组的末尾。 20. `delete`: 删除第一个匹配给定值的元素,返回被删除的元素。 21. `delete_at`: 删除指定索引处的元素,返回被删除的元素。 22. `delete_if`: 遍历数组,对每个元素应用一个块,如果块返回真,则删除该元素,修改原数组。 23. `each`: 遍历数组,对每个元素执行给定的块。 24. `each_index`: 遍历数组的索引,对每个索引执行给定的块。 25. `empty?`: 检查数组是否为空,返回布尔值。 26. `eql?`: 比较两个数组是否完全相同,包括元素顺序和类型。 27. `fetch`: 获取数组中指定索引处的元素,如果索引超出范围,可以提供默认值或抛出异常。 28. `fill`: 用指定的值填充数组的一部分或全部。 29. `first`: 返回数组的第一个元素。 30. `flatten`: 将嵌套的数组展开成单层数组,可选地指定展开深度。 31. `include?`: 检查数组是否包含给定的元素,返回布尔值。 32. `index`: 返回数组中第一个匹配给定值的元素的索引,如果没有找到则返回nil。 33. `indexes`/`indices`: 返回数组中给定元素的所有索引。 34. `insert`: 在指定位置插入一个或多个元素。 35. `join`: 将数组元素连接成字符串,可选地提供分隔符。 36. `last`: 返回数组的最后一个元素。 37. `length`: 返回数组的元素数量。 38. `map!`: 类似于`collect`,但直接修改原数组。 39. `nitems`: 返回数组中非nil元素的数量。 40. `pack`: 将数组转换为字节序列,遵循特定的格式字符串。 41. `pop`: 移除并返回数组的最后一个元素,如果无参数,将保留数组大小不变。 42. `push`: 在数组末尾添加一个或多个元素。 43. `rassoc`: 查找与给定元素匹配的最后一个元组(由连续两个元素组成)。 44. `replace`: 用新数组替换当前数组的元素。 45. `reverse`: 反转数组的元素顺序,返回新的数组。 46. `reverse!`: 反转数组的元素顺序,直接修改原数组。 47. `reverse_each`: 从后向前遍历数组,对每个元素执行给定的块。 48. `rindex`: 返回数组中最后一个匹配给定值的元素的索引,如果没有找到则返回nil。 49. `shift`: 移除并返回数组的第一个元素,如果无参数,将保留数组大小不变。 50. `size`: 同`length`,返回数组的元素数量。 51. `slice`: 获取数组中指定索引或范围的元素。 52. `slice!`: 删除并返回数组中指定索引或范围的元素,直接修改原数组。 53. `sort`: 对数组进行升序排序,返回新的数组。 54. `sort!`: 对数组进行升序排序,直接修改原数组。 55. `to_a`: 将数组转换为Array对象,通常用于确保对象是数组类型。 56. `to_ary`: 与`to_a`类似,通常用于方法调用中的数组解包。 57. `to_s`: 将数组转换为字符串,每个元素由逗号分隔。 58. `transpose`: 如果数组的元素是子数组,将它们转置,即交换列和行。 59. `uniq`: 去除数组中的重复元素,返回新的数组。 60. `uniq!`: 去除数组中的重复元素,直接修改原数组。 61. `unshift`: 在数组开头添加一个或多个元素。 62. `values_at`: 从数组中提取指定索引处的元素,返回一个新数组。 63. `reject!`: 遍历数组,对每个元素应用一个块,如果块返回真,则删除该元素,如果数组未改变,返回nil。 了解并熟练运用这些方法,可以有效地管理和操作Ruby中的数组,从而实现复杂的数据处理任务。Ruby的标准库还包含了其他许多类和模块,如Bignum用于处理大整数,Binding用于绑定上下文,Class用于类相关的操作等等,它们共同构成了Ruby强大的功能基础。"