Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了红宝石 – 任何方式来确定哪个对象叫做方法?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望 Ruby的消息传递基础设施意味着这可能会有一些聪明的技巧.

如何确定调用对象 – 哪个对象称为我目前的方法?

解决方法

作为选择,有一个 binding_of_caller gem允许您在调用堆栈上的任何调用者(呼叫者,呼叫者的呼叫者等)的上下文中执行代码.在开发中检查(在调用堆栈上的任何位置读取任何位置)调用堆栈是有用的,如 better_errors所用.

我应该提到,这种技术只能用于调试,乐趣或教育目的,因为它违反了OOP的原则.
主要是因为eval.

我们准备的东西:

require 'binding_of_caller' # I assume,you installed this gem already?

获取立即(最接近堆栈,因此0)调用者实例:

binding.of_caller(0).eval('self')

…甚至是即时通话方式:

binding.of_caller(0).eval('__method__')

如果您需要更高的调用堆栈,请使用0以外的数字来获取调用者的绑定.

太可笑了但是如果你真的需要这个,那你就去.

大佬总结

以上是大佬教程为你收集整理的红宝石 – 任何方式来确定哪个对象叫做方法?全部内容,希望文章能够帮你解决红宝石 – 任何方式来确定哪个对象叫做方法?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。