6

我正在将 rails 2 应用程序升级到 rails 3.2 并且遇到了所谓的成语。

person.tap |p| do

当我用谷歌搜索它时,它似乎已被弃用或移动。我的理解正确吗?

我问是因为我可以在 SO 上找到一些例子。

4

2 回答 2

10

该方法自 1.8.7 以来tap一直在Ruby 中:

点击{|x|...} => obj

屈服于x块,然后返回x。此方法的主要目的是“利用”方法链,以便对链中的中间结果执行操作。

请注意,1.8.6 没有Object#tap. 大概tap是在旧版本的 Rails 中(作为猴子补丁Object),但在 1.8.7 中被添加到 Ruby 本身。由于 1.8.6 现在相当古老,Rails 版本已被弃用,并且在最近的 Rails 版本中被完全删除。

Object#tap仍然存在,所以tap它本身并没有被弃用,只是 Rails 猴子补丁版本已被删除。

于 2012-04-07T18:08:43.563 回答
4

从 1.9.0 和 1.8.7 开始,Object#tapmonkey 补丁ActiveSupport已被弃用,因为它已成为 Ruby 的一部分。

于 2012-04-07T18:13:00.047 回答