当我有Foo.a.b.c.d时,有没有办法知道d是链中的最后一个方法?

时间:2013-09-13 18:39:45

标签: ruby metaprogramming

Foo.a.b.c.d

  1. 我可以以某种方式获取整个链,例如[:a,:b,:c,:d]
  2. 有没有办法找出:d是链中的最后一个方法调用?

1 个答案:

答案 0 :(得分:5)

没有。有可能找出谁叫方法。但是方法不可能找出其返回值会发生什么。

进一步思考。有这个

x = Foo.a.b.c
x.d

链中最后一个方法应该是什么? c因为它是最后一个链式方法,或d,因为它是对返回值的最后一次调用?