Arrays 传递给映射的块的长版本返回枚举数?
为什么将块传递给数组映射(下面的2)的长版本返回枚举数,而下面的1和3返回数组 方法#1:返回一个数组Arrays 传递给映射的块的长版本返回枚举数?,arrays,ruby,enumerator,Arrays,Ruby,Enumerator,为什么将块传递给数组映射(下面的2)的长版本返回枚举数,而下面的1和3返回数组 方法#1:返回一个数组 result = [1, 2, 3].map do |num| num * 2 end p result p [1, 2, 3].map {|num| num * 2} 方法#2:返回枚举数 p [1, 2, 3].map do |num| num * 2 end 方法#3:返回一个数组 result = [1, 2, 3].map do |num| num * 2 end
result = [1, 2, 3].map do |num|
num * 2
end
p result
p [1, 2, 3].map {|num| num * 2}
方法#2:返回枚举数
p [1, 2, 3].map do |num|
num * 2
end
方法#3:返回一个数组
result = [1, 2, 3].map do |num|
num * 2
end
p result
p [1, 2, 3].map {|num| num * 2}
在#2中,您将map
的返回值(它是一个枚举器)传递到p
[1,2,3].map#返回枚举数
另一方面,在#1和#3中,您将块直接传递到map
,因此返回值是一个数组
p ([1, 2, 3].map do |num|
num * 2
end) # returns an array
如果你把整个东西都放在括号里,它会给你正确的返回值