本文简要介绍ruby语言中 Module.module_eval
的用法。
用法
module_eval(string [, filename [, lineno]]) → obj
module_eval {|mod| block } → obj
也别名为:class_eval
在 mod
的上下文中评估字符串或块,除了给定块时,常量/类变量查找不受影响。这可用于向类添加方法。 module_eval
返回评估其参数的结果。可选的filename
和lineno
参数设置错误消息的文本。
class Thing
end
a = %q{def hello() "Hello there!" end}
Thing.module_eval(a)
puts Thing.new.hello()
Thing.module_eval("invalid code", "dummy", 123)
产生:
Hello there! dummy:123:in `module_eval': undefined local variable or method `code' for Thing:Class
相关用法
- Ruby Module.module_exec用法及代码示例
- Ruby Module.module_function用法及代码示例
- Ruby Module.method_removed用法及代码示例
- Ruby Module.method_defined?用法及代码示例
- Ruby Module.method_added用法及代码示例
- Ruby Module.method_undefined用法及代码示例
- Ruby Module.attr_accessor用法及代码示例
- Ruby Module.private用法及代码示例
- Ruby Module.deprecate_constant用法及代码示例
- Ruby Module.instance_method用法及代码示例
- Ruby Module.class_variables用法及代码示例
- Ruby Module.included_modules用法及代码示例
- Ruby Module.singleton_class?用法及代码示例
- Ruby Module.included用法及代码示例
- Ruby Module.include?用法及代码示例
- Ruby Module.ruby2_keywords用法及代码示例
- Ruby Module.extend_object用法及代码示例
- Ruby Module.class_exec用法及代码示例
- Ruby Module.autoload用法及代码示例
- Ruby Module.ancestors用法及代码示例
- Ruby Module.class_variable_get用法及代码示例
- Ruby Module.class_variable_defined?用法及代码示例
- Ruby Module.new用法及代码示例
- Ruby Module.obj ==用法及代码示例
- Ruby Module.const_missing用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Module.module_eval。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。