此代码:p [1, 2].each{ "foo" }
产生nil
,而我希望它在迭代后放置[1, 2]
。如何在水晶?遍历数组并返回自身
3
A
回答
4
使用tap
:
p [1, 2].tap &.each { "foo" } # => [1, 2]
它产生自我块,然后返回自己。
另一种选择(不推荐)可以创建简单地做每一后返回自己的自定义方法:
class Array
def each_with_self
each { |x| yield x }
self
end
end
p [1, 2].each_with_self { "foo" } # => [1, 2]
1
对于你所要求的情况下,它可能是足够用括号中p(..)
因为p
作为结果返回参数。
p([1, 2]).each{ "foo" }
的p
此行为提供用于在表达式的中间做容易检查,即改变foo(bar, baz)
到foo(p(bar), baz)
。
至于#each
,晶振决定返回nil
以改善生成的代码,因为该值大部分时间不使用。这也阻止了在一天结束时产生一些工会。
相关问题
- 1. 遍历返回的数据
- 2. 循环遍历循环并返回数组中的字符串
- 3. 遍历数组并返回结果放入阵列
- 4. 我需要遍历数组列表并返回匹配
- 5. Neo4j:遍历返回
- 6. 在Python中遍历n遍历树并返回节点实例
- 7. 遍历MVC模式,并返回
- 8. 遍历列表并返回匹配键
- 9. 遍历链表并返回char *值
- 10. 异步遍历数组,然后返回数组?
- 11. 遍历数组
- 12. 遍历数组
- 13. 遍历数组
- 14. 遍历数组
- 15. 遍历数组
- 16. 遍历数组
- 17. 遍历数组
- 18. 遍历数组
- 19. 遍历数组
- 20. 如何从函数返回一个数组并循环遍历它?
- 21. 如何遍历由Java中的函数返回的数组
- 22. jquery遍历数组
- 23. 遍历数组值
- 24. 遍历数组--java
- 25. 遍历数组树?
- 26. ç遍历数组
- 27. typoscript - 遍历数组?
- 28. php数组遍历
- 29. 遍历列表的迭代函数,并追加返回的值
- 30. Scheme:遍历列表并仅返回非数字的程序