`
studyworks
  • 浏览: 16695 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

instance_exec vs instance_eval

 
阅读更多

instance_exec allows you pass arguments to the block which is to be evaluated in the new self:

o = Struct.new(:val).new("Hello")
o.instance_exec("World!"){|arg| val + " " + arg}      # => Hello World!
 reference: http://eigenclass.org/hiki.rb?instance_exec
分享到:
评论

相关推荐

    详解Ruby中的instance_eval方法及其与class_eval的对比

    `instance_exec` 是 `instance_eval` 的变体,它与 `instance_eval` 类似,但是它允许你在执行代码块时传递额外的参数。这些参数在代码块中作为局部变量可用。 ```ruby class C def initialize @x = 1 end end ...

    looksee:IRB中的增压方法自省

    看看 用于说明对象的祖先和方法查找路径的工具。 方便探索陌生的代码库。...= __send__ instance_eval singleton_method_added == equal? instance_exec singleton_method_removed Kernel !~ enum_for

    sin_refinements

    sin表示此gem使用非常复杂的方式(eval,AST,instance_exec)。 罪(真)在日语中表示真。安装将此行添加到应用程序的Gemfile中: gem 'sin_refinements' 然后执行: $ bundle或将其自己安装为: $ gem install ...

    glimmer:由DSL引擎和数据绑定库组成的DSL框架,用于SWT的Glimmer DSL(JRuby桌面开发GUI框架),用于Opal的Glimmer DSL(纯Ruby Web GUI),用于XML(&HTML)的Glimmer DSL,Glimmer用于CSS的DSL和用于Tk的Glimmer DSL(MRI Ruby桌面开发GUI库)

    Glimmer 1.0.11-DSL框架 (自2007年以来,原始的Glimmer库... 没有意外的限制或对instance_exec / eval奇怪使用。 DSL语法仅限于在Glimmer模块中混合的类,因此其余代码完全不受名称空间污染。 多个DSL可以安全地

    flash_cards_2

    6. 元编程:在运行时动态修改类和对象的能力,如`class_eval`和`instance_exec`。 7. Mixins:通过模块实现代码重用。 8. 文件和IO操作:读写文件,处理标准输入输出。 9. 正则表达式:用于字符串匹配和替换。 10. ...

    python简明教程

    def __init__(self): self.instance_var = 200`。 - **继承**: - 子类可以继承父类的属性和方法; - 示例:`class Parent: def method(self): pass; class Child(Parent): pass`。 #### 12. 输入/输出 - **...

    ls-rb101

    `class_eval`、`instance_eval`和`define_method`等方法是元编程的常用工具。 ### 9. 文件与IO Ruby提供了处理文件和输入/输出流的能力,如`File`类和`IO`类。可以进行文件的读写、追加、移动文件指针等操作。 ##...

    java执行js导致命令执行1

    engine.eval("java.lang.Runtime.getRuntime().exec('calc');"); } } ``` 这段代码使用ScriptEngineManager来执行JS代码,并使用eval方法来执行JS代码。在这段代码中,我们可以看到,JS代码可以执行calc命令。 ...

    win2003+asp+php+mysql+zend+phpmyadmin服务器环境详细+安全维护.doc

    - **禁用危险函数**: 在 `php.ini` 文件中禁用如 `eval()`、`exec()` 等危险函数。 - **限制上传文件类型**: 控制允许上传的文件类型,避免上传恶意文件。 - **代码审查**: 对上传的 PHP 代码进行审查,防止代码注入...

    freemarker总结

    JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>......

    Java表达式攻防下的黑魔法-release

    .getEngineByName("js").eval("java.lang.Runtime.getRuntime().exec(\"open /\")")} ``` - 这段代码首先创建了一个`ScriptEngineManager`实例,然后通过JavaScript引擎执行了一个命令,最终调用了`Runtime.exec`...

    2009 达内Unix学习笔记

    集合了 所有的 Unix命令大全 ...telnet 192.168.0.23 自己帐号 sd08077-you0 ftp工具 192.168.0.202 tools-toolss ... 各个 shell 可互相切换 ksh:$ sh:$ csh:guangzhou% bash:bash-3.00$ ... 命令和参数之间必需用空格隔...

Global site tag (gtag.js) - Google Analytics