![]() |
1
6
这是一个(有些脆弱的)黑客:
这适用于您的示例,但我没有用其他很多方法来测试它。
当然,如果绑定没有定义您要评估的变量,这将不起作用,但这是绑定的一般问题。如果一个变量没有定义,它就不知道它是什么。
要解决此问题,需要在计算的字符串中执行一些错误处理:
|
![]() |
2
3
如果使用块调用该方法,则可以通过执行以下操作获取块的绑定(该绑定在调用方的绑定上关闭)
您不能直接获得调用方的绑定(当然,除非您明确地传递它)。 编辑:我应该补充一点,曾经有一个binding.of撎caller方法在周围浮动,但它不再适用于任何最新的Ruby版本(其中最新的版本包括1.8.6)。 |
![]() |
3
2
这可能比你想的要麻烦,但我有一个办法可以做到。
将类和方法定义替换为
这可能等同于将所有变量定义为全局变量,但这可能对您有所帮助,具体取决于您的情况。也许有了这个改变,你就能找到谜题的最后一块了(如果这对你不起作用的话)。
编辑:
您可以按如下方式获得任何方法的绑定,但即使使用它,我也无法
|