此代码段来自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/