Project1

标题: ['说重点']快速开发功能点框架Veil 1.2 [打印本页]

作者: 晴兰    时间: 2014-3-8 07:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: taroxd    时间: 2014-3-8 08:33
看了20分钟...总觉得越来越黑科技了……
作者: 晴兰    时间: 2014-3-8 08:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 余烬之中    时间: 2014-3-8 15:58
假设我要实现两个叠加funcA 和 funcB,在同一个方法meth上,如果我想实现这样:
funcA -> old meth -> funcB
我必须使用两次register?
作者: Sion    时间: 2014-3-9 13:36
本帖最后由 Sion 于 2014-3-9 13:37 编辑

这些属于大家自己的编程习惯吧。
特别是 Ruby 这种解释型语言,想怎么写都行啦。
作者: Sion    时间: 2014-3-9 21:38
对了,想请教一个问题:
RUBY 代码复制
  1. class A
  2.  
  3.   def get_handle
  4.     method(:test)
  5.   end
  6.  
  7.   def test
  8.     @a = 1
  9.   end
  10.  
  11. end
  12.  
  13.  
  14. File.open("test", "wb") {|file| Marshal.dump( A, file ) }
  15.  
  16. A.new.get_handle.call # 目前位置都可以运行
  17.  
  18. File.open("test", "rb") {|file| Marshal.load( file ) }
  19.  
  20. A.new.test            # 可以运行
  21.  
  22. A.new.get_handle.call # Security Error.

这个奇葩的问题是什么原因导致的呢?
作者: 晴兰    时间: 2014-3-9 21:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: Sion    时间: 2014-3-9 22:13
晴兰 发表于 2014-3-9 21:53
简而言之就是Marshal.load的参数不是String,于是他自动给返回的对象(也就是A)加上了污染标记,在一些操 ...


那还是存成字符串直接 eval 得了..
谢啦




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1