在以下Rails代码中,
root.join('lib', 'assets', 'bower_components').to_s.tap do |bower_path|
config.sass.load_paths << bower_path
config.assets.paths << bower_path
end
我想知道为什么我们需要点击这里
为什么不使用
bower_path = root.join('lib', 'assets', 'bower_components').to_s
config.sass.load_paths << bower_path
config.assets.paths << bower_path
使用tap有什么好处?
答案 0 :(得分:6)
一个好处可能是tap
返回调用它的对象。您的第二个版本与tap
版本不完全相同。它与:
bower_path = root.join('lib', 'assets', 'bower_components').to_s
config.sass.load_paths << bower_path
config.assets.paths << bower_path
bower_path
如果需要此功能,则取决于上下文。
答案 1 :(得分:1)
在你的情况下,我没有看到任何好处。
VALUE
rb_obj_tap(VALUE obj)
{
rb_yield(obj);
return obj;
}
可用于:
总结一下,更多&#34;功能性&#34;风格