【发布时间】:2011-11-26 18:55:40
【问题描述】:
Ruby 中有没有方法可以返回传递给对象的块的内容?
例如,如果我有一个想要放入数组的对象怎么办?
在理想的世界中,我们会做(我正在寻找的):
"string".reverse.upcase.something{ |s| send(s) }
这将返回一个包含我的对象的数组,相当于:
send("string".reverse.upcase)
如果我有我的对象开始并且在更复杂的场景中可能会变得混乱,则它是不可链接的。
因此something 方法将返回块的评估,如Array#map,但仅针对一个元素。
【问题讨论】:
-
returns the content of the block passed on to an object是什么意思? -
该方法将评估块的内容并返回它。
-
“保持可链接性”是什么意思? JSON.parse(j) 的结果是什么?
-
@mlie 如果您查看第一个代码块,我们可以重用该方法的结果以将其传递给另一个方法,依此类推,“可链接性”。如果您查看第二个代码块,代码会更加混乱,因为该方法位于开头。 (我很难用语言表达,请随时编辑/评论)
-
好的,现在我明白了。我个人认为是相反的:第二行的调用对我来说更清楚,花括号很难阅读,其他人必须知道
something是什么意思......
标签: ruby object block yield chainability