gpt4 book ai didi

ruby - 是否可以更简洁地表达 `stuff.map {|x| puts x}`?

转载 作者:数据小太阳 更新时间:2023-10-29 07:41:07 26 4
gpt4 key购买 nike

我想用某种简写来表达以下内容:

stuff.map {|x| puts x}

像这样:

stuff.map {puts}

我无法理解语法。谁能告诉我怎么做?

最佳答案

首先:在这里使用 map 没有意义,因为您不是在进行映射操作,而是在进行简单的副作用迭代。 正是 each 的用途。使用 map 只会让 future 的维护者(包括你自己)感到困惑。

eachmap 占用一个 block 。您可以使用一元前缀 & 运算符将任何响应 to_proc 的对象变成一个 block 。值得庆幸的是,Methoddo 响应 to_proc,因此您可以直接传递要调用的方法:

stuff.each(&method(:puts))

但是,如果 stuff 是一个 Array,还有一个更简单的方法,因为 puts 特殊情况 Arrays 来做你正在做的事情。所以,你的代码 100% 等同于

puts stuff

关于ruby - 是否可以更简洁地表达 `stuff.map {|x| puts x}`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com