在以下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
我想知道为什么我们需要在这里使用tap
为什么不用
bower_path = root.join('lib', 'assets', 'bower_components').to_s config.sass.load_paths << bower_path config.assets.paths << bower_path
使用水龙头有什么好处?
一个好处可能是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
如果需要此功能,则取决于上下文.