收集和每个之间有明显区别吗?

发布于 2024-09-16 18:06:54 字数 138 浏览 5 评论 0原文

使用数组collect 和each 之间的主要区别是什么?偏爱?

some = []

some.collect do {|x| puts x}

some.each do |x|
    puts x
end

Using arrays what's the main difference between collect and each? Preference?

some = []

some.collect do {|x| puts x}

some.each do |x|
    puts x
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ゞ记忆︶ㄣ 2024-09-23 18:06:54

array = [] 是定义数组对象的快捷方式(长格式:array = Array.new

Array#collect(以及Array#map) 根据块中传递的代码返回一个新数组。 Array#each 对数组的每个元素执行操作(由块定义)。

我会像这样使用收集:

array = [1, 2, 3]
array2 = array.collect {|val| val + 1}

array.inspect # => "[1, 2, 3]"
array2.inspect # => "[2, 3, 4]"

并且每个都像这样:

array = [1, 2, 3]
array.each {|val| puts val + 1 }
# >> 2
# >> 3
# >> 4
array.inspect # => "[1, 2, 3]"

希望这有帮助......

array = [] is a shortcut to define an array object (long form: array = Array.new)

Array#collect (and Array#map) return a new array based on the code passed in the block. Array#each performs an operation (defined by the block) on each element of the array.

I would use collect like this:

array = [1, 2, 3]
array2 = array.collect {|val| val + 1}

array.inspect # => "[1, 2, 3]"
array2.inspect # => "[2, 3, 4]"

And each like this:

array = [1, 2, 3]
array.each {|val| puts val + 1 }
# >> 2
# >> 3
# >> 4
array.inspect # => "[1, 2, 3]"

Hope this helps...

一抹微笑 2024-09-23 18:06:54

collect(或map)会将do块的返回值“保存”在一个新数组中并返回它,例如:

some = [1,2,3,10]
some_plus_one = some.collect {|x| x + 1}
# some_plus_one == [2,3,4,11]

each只会为每个项目执行 do 块,并且不会保存返回值。

collect (or map) will "save" the return values of the do block in a new array and return it, example:

some = [1,2,3,10]
some_plus_one = some.collect {|x| x + 1}
# some_plus_one == [2,3,4,11]

each will only execute the do block for each item and wont save the return value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文