函数名称
|
说明
|
示例
|
&
|
数组与,返回两数组的交集
|
[1,2] & [2,3] » [2]
|
*
|
复制数组n次
|
[1,2]*2 » [1,2,1,2]
|
+
|
返回两数组的并集,但不排除重复元素
|
[1,2]+[2,3] » [1,2,2,3]
|
<<
|
追加元素,但不排除重复元素
|
[1,2]<<[2,3] » [1,2,2,3]
|
|
|
追加元素,但排除重复元素
|
[1,2] | [2,3] » [1,2,3]
|
-
|
返回第一个数组与第二个数组不同的元素
|
[1,2]-[2,3] » [1]
|
<=>
|
比较数组
|
[1,2]<=>[2,3] »flase
|
==
|
比较数组,若所有元素均相等时返回真
|
[1,2]==[2,1] »flase
|
assoc
|
从数组的每个元素中寻找指定对象
|
[[1,2],[3,4]].assoc(2) » [1,2]
|
at
|
找到数组的第N个元素
负数表示逆向查找
|
["a","b","c","d","e"].at(0) » "a"
["a","b","c","d","e"].at(-1) » "e"
|
clear
|
删除数组中的所有元素
|
["a","b","c","d","e"]. clear
|
collect
collect!
|
用一个过程块对数组的每个元素进行处理
|
["a","b","c","d"].collect {|x| x + "!" }
» ["a!", "b!", "c!", "d!"]
|
compact
compact!
|
删除值为nil 的元素后生成新数组并返回它
|
["a",nil,"b",nil,"c",nil].compact
» ["a", "b", "c"]
|
delete
|
删除元素,如果元素重复,全部删除
|
a = [ "a", "b", "b", "b", "c" ]
a.delete("b")
puts a » ["a","c"]
|
delete_at
|
删除pos所指位置的元素并返回它。若pos超出数
组范围则返回nil
|
a = %w( ant bat cat dog )
a.delete_at(2) » "cat"
a» ["ant", "bat", "dog"]
a.delete_at(99) » nil
|
delete_if
|
根据条件删除
|
a = [ "a", "b", "c" ]
a.delete_if {|x| x >= "b" } » ["a"]
|
each
|
对数组的每个元素按值进行迭代操作
|
a = [ "a", "b", "c" ]
a.each {|x| print x, " -- " }
» "a -- b -- c --"
|
each_index
|
对数组的每个元素按索引进行迭代操作
|
a = [ "a", "b", "c" ]
a.each_index {|x| print x, " -- " }
» "0 -- 1 -- 2 --"
|
empty?
|
判断数组是否为空,为空则返回真
|
[].empty? » true
|
eql!
|
比较两数组是否相等
|
["a","b","c"].eql?(["a","b","c"]) » true
|
fill
|
填充数组
|
["a","b","c","d"].fill("x")
» ["x","x","x","x"]
["a","b","c","d"].fill("z", 2, 2)
» ["x", "x", "z", "z"]
|
first
|
返回数组的首元素。若没有首元素则返回nil
|
[ "q", "r", "s", "t" ].first » "q" |
last
|
返回数组末尾的元素。若数组为空时,返回nil
|
["w","x","y","z"].last » "z"
|
include?
|
判断数组中是否包含元素
|
a = [ "a", "b", "c" ]
a.include?("b") » true
a.include?("z") » false
|
index
|
返回数组中第一个== val的元素的位置
|
a = [ "a", "b", "c" ]
a.index("b") » 1
a.index("z") » nil
|
indexes
|
以数组形式返回其索引值与各参数值相等的元素
|
a = [ "a", "b", "c", "d", "e", "f", "g" ]
a.indexes(0, 2, 4) » ["a", "c", "e"]
a.indexes( 2, 4, 12) » [ "c", "e", nil]
|
insert
|
在索引为nth的元素前面插入第2参数以后的值
|
ary = %w(foo bar baz)
ary.insert 2,'a','b'
p ary » ["foo", "bar", "a", "b", "baz"]
|
join
|
将数组元素按一定的分隔符连接起来
|
[ "a", "b", "c" ].join » "abc"
[ "a", "b", "c" ].join("-") » "a-b-c"
|
length
size
|
返回数组长度。若数组为空则返回0
|
[1,2,3].length » 3
[1,2,3].size » 3
|
nitems
|
返回非nil元素的个数
|
[ 1, nil, 3, nil, 5 ].nitems » 3
|
pop
|
删除末尾元素并返回它。若数组为空则返回nil
|
a = [ "a", "m", "z" ]
a.pop » "z"
p a » ["a", "m"]
|
push
|
添加新元素
|
["a","b"].push(['1','2'])
» ["a", "b", ["1", "2"]]
|
rassoc
|
遍历数组每个元素(元素必须是数组),匹配索引为1的值是否与查找的字符相等,返回第一个相等的元素
|
a = [[15,1], [25,2], [35,2]]
p a.rassoc(2) » [25, 2]
|
replace
|
替换数组元素
|
a = ["a","b"]
a.replace(["x","y","z"])
p a »["x", "y", "z"]
|
reverse
reverse!
|
将所有元素以逆序重新排列生成新数组并返回它
|
["a","b","c" ].reverse » ["c", "b", "a"]
|
rindex
|
返回最后一个值相等 的元素的索引值
|
a = [ "a","b","b","b","c"]
a.rindex("b") » 3
|
shift
|
删除数组的首元素并返回它。剩余元素依次提前。若数组为空返回nil |
args = ["-m","-q","filename"]
args.shift » "-m"
args » ["-q", "filename"]
|
sort
sort!
|
从小到大排序
|
a = [ "d", "a", "e", "c", "b" ]
a.sort » ["a", "b", "c", "d", "e"]
|
uniq
uniq!
|
删除数组中的重复元素后生成新数组并返回它
|
a = [ "a", "a", "b", "b", "c" ]
a.uniq » ["a", "b", "c"]
|
unshift
|
在数组第一个元素前添加元素
|
a = [ "b", "c", "d" ]
a.unshift("a") » ["a", "b", "c", "d"]
|
to_s
|
将数组的所有元素连接成字符串
|
["a","e","i","o"].to_s » "aeio"
|
相关推荐
这对于函数式编程风格的Ruby代码来说是个巨大的提升,尤其是在使用`Array#map`、`Array#select`等方法时。 ```ruby numbers = [1, 2, 3, 4] squared = numbers.map(&:square) # 使用 & 符号将 :square 转换为 Proc ...
用户可以通过man命令查看这些帮助文档,学习如何使用Ruby的内置函数和命令。 4. **bin**:这是存放可执行文件的地方,包括Ruby解释器(如`ruby.exe`)以及其他可能的命令行工具,比如用于编译Ruby源代码的`rubycc`...
- **核心类库**:探讨 Ruby 的核心类库,包括 Array、Hash、String 等类的功能及用法。 - **常用方法**:总结常用的核心类方法,如 map、select、each 等。 #### 3.2 标量对象 - **数值类型**:讲解数值类型(如 ...
这段代码中,`bubble_sort`函数接收一个数组作为参数,通过外层的`loop`循环控制排序过程,内层的`(n - 1).times`循环则负责逐对比较相邻元素。`swapped`变量用于检测是否在当前遍历过程中发生了元素交换,如果没有...
现在,当块(block)返回多值时,可以使用一个变量列表来接收这些值,类似于函数调用的多重赋值。这提高了代码的可读性和简洁性。 Ruby 2.7.1对语法也进行了一些改进,例如弃用了`Hash#default`方法的旧用法,鼓励...
5. **数据结构**:Ruby内建了丰富的数据结构,如数组(Array)、哈希(Hash)、集合(Set)、队列(Queue)等。理解如何有效使用这些数据结构对于编写高效代码至关重要。 6. **算法**:算法是解决问题的步骤和方法...
标题中的“is-whole-number-array”暗示我们关注的是一个与检查数组是否全由整数构成相关的编程问题。从描述和压缩包文件名来看,我们很可能将深入探讨一段用于实现这一功能的源代码。由于标签部分为空,我们无法...
Ruby还提供了块(block)、 Proc 和 Lambda,它们是实现迭代和函数式编程的重要工具。块可以通过`do..end`或者花括号`{}`定义,Proc和Lambda则可以捕获和存储块,像函数一样调用。 此外,文件名列表中的"Ruby-...
- **语法特点**:RUBY的语法简洁明了,易于学习,同时支持多种编程范式,包括面向对象、函数式以及元编程等。 - **应用场景**:广泛应用于Web开发(如Rails框架)、系统管理工具、服务器自动化脚本、图形用户界面等...
4. **映射(Map)**:在Ruby中,Array类提供了`map`方法,可以对数组的每个元素应用一个函数,然后返回一个新的数组,包含了应用函数后的结果。这是函数式编程中常见的操作。 5. **过滤(Filter)**:`select`或`...
在Ruby中,基础的数据结构包括数组(Array)、哈希(Hash)和范围(Range)。数组是有序元素的集合,支持索引访问;哈希则是一组键值对,通过键来查找对应的值;范围可以表示一组连续的数值,比如1..10,提供了迭代...
方法(函数) 在Ruby中,方法是定义在类或模块中的代码块,用于执行特定任务。方法可以通过类名或对象实例来调用。 示例代码: ```ruby # 定义一个方法 def greet(name) puts "Hello, #{name}!" end # 调用...
Ruby还包含了一些其他重要的实用函数,如Array和Hash的内置方法。Array类提供了如`map`, `each`, `select`等方法,用于迭代和操作数组元素。Hash类允许键值对存储,其方法如`fetch`, `merge`, `keys`, `values`等能...
尽管Hash函数还具有遵循“可枚举方法的字符”的方法,但是为了易于学习,我们将仅关注Array 。定义map 如“可枚举的字符”中所述,我们需要访问集合的每个成员。 这是所有Enumerable方法所共有的。 对于map
Ruby也支持函数式编程概念,如块(Block)、 Proc 和 Lambda,它们提供了一种处理集合数据的方式。 3. **面向对象编程**:Ruby是纯面向对象的语言,每个值都是一个对象,包括基本数据类型。你可以为这些对象定义...
尽管Hash函数还具有遵循“可枚举方法的字符”的方法,但是为了易于学习,我们将仅关注Array 。 定义map 如“可枚举字符”中所述,我们需要访问集合的每个成员。 这是所有Enumerable方法所共有的。 对于map
此外,Ruby还有数组(Array)和哈希(Hash)等复合数据类型。 2. **控制结构**:Ruby中的控制结构包括条件语句(如if/else,case/when)、循环(如for,while,until,each)以及流程控制语句(如break, next, ...
尽管Hash函数还具有遵循“可枚举方法的字符”的方法,但是为了易于学习,我们将仅关注Array 。 定义map 如“可枚举字符”中所述,我们需要访问集合的每个成员。 这是所有Enumerable方法所共有的。 对于map
- 数组(Array) - 哈希(Hash) - 数字(Numeric) - 布尔值(Boolean) #### 2.2 控制结构 - **条件语句**:`if`、`elsif`、`else` - **循环结构**:`for`、`while`、`until` - **流程控制**:`break`、`next...
然后,在代码中引入库并根据需求调用相应的函数。例如,创建一个Judy Array,插入元素,以及查询元素是否存在,都是通过RJudy提供的接口完成的。 总的来说,RJudy为Ruby社区提供了一种高效的数据结构选择,它在处理...