本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。