是否有刚刚分配的变量的ruby钩子?
发布时间:2020-12-17 03:53:12 所属栏目:百科 来源:网络整理
导读:这是我理想的样子.用户: a="hello" 输出将是 You just allocated "a" ! = "Hello" 只要我能使消息发生,订单就无关紧要了. 解决方法 不,没有直接的方法来实现这一点,因为在执行代码之前,Ruby字节码编译器会丢弃局部变量名. YARV(MRI 1.9.2中使用的Ruby VM)提
这是我理想的样子.用户:
a="hello" 输出将是 You just allocated "a" ! => "Hello" 只要我能使消息发生,订单就无关紧要了. 解决方法
不,没有直接的方法来实现这一点,因为在执行代码之前,Ruby字节码编译器会丢弃局部变量名.
YARV(MRI 1.9.2中使用的Ruby VM)提供的唯一指令是局部变量getlocal和setlocal,它们都是对整数指标而不是变量名进行操作.以下是1.9.2源代码中insns.def的摘录: /**********************************************************/ /* deal with variables */ /**********************************************************/ /** @c variable @e get local variable value (which is pointed by idx). @j idx */ DEFINE_INSN getlocal (lindex_t idx) () (VALUE val) { val = *(GET_LFP() - idx); } /** @c variable @e set local variable value (which is pointed by idx) as val. @j idx */ DEFINE_INSN setlocal (lindex_t idx) (VALUE val) () { (*(GET_LFP() - idx)) = val; } 有可能破解MRI源(或使用set_trace_func并潜入Binding对象 – 请参阅sarnold的答案),以便在设置局部变量时通知您,但是没有任何高级方法可以做到这一点如果不深入解释器内部,将无法检索这些局部变量的名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c – 防止SDL程序消耗额外资源
- XML基础+Java解析XML +几种解析方式的性能比较
- frameworks\base\packages\SettingsPro
- 基于ajax和jsonp的原生封装(实例)
- 正则表达式 – 如何为正则表达式集合找到“最小生成集”?
- 9.2 Swift常量存储属性
- objective-c – 如何为iPhone 6,6屏幕分辨率开发或迁移应用
- Oracle 删除根据id 删除重复数据
- cocos2d-x 2.x必须升级到2.26才能通过appstore对64bit支持的
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求