此代码段来自plataformecs gem simple_form,有关“添加自定义输入”的Wiki部分:

out << template.image_tag(object.send(attribute_name).tap {|o| break o.send(version) if version}.send('url'))

问题很简单,.tap {} 之后的代码块是什么意思?特别是最初的“休息”,这对我来说很奇怪。

最佳答案

块中的 break argument 导致块返回 argument 。默认情况下,tap 返回与给定的对象相同的对象,但中断将导致它返回 o.send(version) if version 计算结果的任何内容。

关于ruby - "break"在这个 ruby​​ 语句中做了什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17756408/

10-16 18:44