Jef*_*rey 19 ruby arrays each self
我正在学习如何each在ruby中工作的细节,我尝试了以下代码行:
p [1,2,3,4,5].each { |element| el }
Run Code Online (Sandbox Code Playgroud)
结果是一个数组
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
但我不认为我完全理解为什么.为什么each同一个数组的返回值?难道每个都不提供迭代方法吗?或者只是该each方法返回原始值的常见做法?
小智 24
Array#each返回它被调用的[array]对象:块的结果被丢弃.因此,如果没有恶心的副作用原来的数组,那么什么都不会发生变化.
也许你的意思是使用map?
p [1,2,3,4,5].map { |i| i*i }
Run Code Online (Sandbox Code Playgroud)
如果您出于某种原因想要抑制输出(例如在控制台中调试),则可以通过以下方法实现
[1,2,3,4,5].each do |nr|
puts nr.inspect
end;nil
Run Code Online (Sandbox Code Playgroud)