`
fantaxy025025
  • 浏览: 1309231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

ruby_的class_eval和instance_eval简记

 
阅读更多

 

有很多文章来讲这个ruby rails中最重要最频繁使用的方法。

详细的理解,还需要去仔细理解ruby中的对象模型等。

略。

 

时间一长,就会忘记的,或者得回忆一下了,尤其是去写一段时间别的语言例如java python,再回来的时候,发现,哦,忘记了~需要再想想对象模型,恩,理解了。

 

很麻烦,对不对,何不让大脑休息一下~找个简记方法吧:

*1 C.class_eval "eval_str" 等价于在C中放入eval_str这段代码;

     class_eval只有类对象(Class Object)才能执行,普通对象没有这个方法

*2 obj.instance_eval "eval_str" 等价于class << obj eval_str end,也就是在obj的单例类中放入eval_str这段代码

     同时还能访问obj的实例变量!

     instance_eval对任意实例都可以运行

 

 

 

原理简记:

*1 The Module class defines a method named class_eval . (module_eval is a synonym for class_eval .) 

     Class < Module < Object

*2 The Object class defines a method named instance_eval. ruby中都是对象,所以都可以运行哈。

 

 

 

====本文结束====

--------本文结束--------

..........本文结束..........

 

分享到:
评论

相关推荐

    AD9516_17_18 Eval Software

    "AD9516_17_18 Eval Software"是一款专为这三款时钟芯片设计的寄存器配置软件,它允许用户通过编程来调整芯片的各项参数,以实现最佳的性能和功能。 首先,我们需要了解时钟芯片的基本概念。时钟芯片是电子设备中的...

    CrystalC_REVS_ProPlus_Eval_v480.Zip

    总的来说,“CrystalC_REVS_ProPlus_Eval_v480”是一款强大的代码自动生成流程图软件,它的出现使得软件开发变得更加直观和高效。通过深入学习和充分利用其各项功能,开发者可以提升工作效率,优化开发流程,从而在...

    I2C.zip_STM3210E_STM32F10X.h_stm32_eval.h_stm32_eval_i2c__stm32f

    #include "stm32_eval_i2c_tsensor.h" #include "stm32_eval.h" #ifdef USE_STM32100E_EVAL #include "stm32100e_eval_lcd.h" #elif defined USE_STM3210E_EVAL #include "stm3210e_eval_lcd.h" #elif defined ...

    Ruby Meta Programming: define_method or class_eval

    `define_method`和`class_eval`是Ruby元编程中的两个关键方法,它们被广泛用于动态地添加方法到类或者模块中。这篇文章将深入探讨这两个方法的用法和区别。 `define_method`方法允许我们传递一个符号和一个代码块来...

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

    综上所述,`instance_eval` 和 `class_eval` 都是非常有用的Ruby工具,但它们的应用场景有所不同。`instance_eval` 更适合于在特定实例上执行代码,而 `class_eval` 则是在类级别进行操作的理想选择。

    Micrium_STM320518-EVAL_uCOS-II

    在" Micrium_STM320518-EVAL_uCOS-II "压缩包中,包含了uCOS-II在STM320518-EVAL板上的完整实现,包括源代码、配置文件以及必要的库函数,使得开发者能够快速地进行系统级的开发工作。 首先,我们需要了解uCOS-II的...

    reset_jetbrains_eval_windows.rar

    标题 "reset_jetbrains_eval_windows.rar" 暗示这是一个针对JetBrains开发的IDE在Windows操作系统上的试用重置工具。JetBrains是一家知名软件开发公司,以其高效、功能强大的集成开发环境(IDE)如IntelliJ IDEA、...

    arm_cortex_m3_designstart_eval

    通过ARM Cortex-M3 DesignStart Eval项目,ARM提供了一种利用FPGA来评估和实现Cortex-M3核心的方法。用户可以通过FPGA快速原型开发硬件平台,进行系统验证和软件开发。 设计文档的版权和专利声明: 文档明确声明了...

    STM3210C_EVAL_stm32_STM3210C_EVAL_temperature565_

    在给定的标题"STM3210C_EVAL_stm32_STM3210C_EVAL_temperature565_"中,我们可以推测这是与STM3210C EVAL板相关的项目或者固件更新,可能包含了针对STM3210C处理器的温度测量或控制功能。"temperature565"可能指的是...

    Ruby-rubybuild编译和安装Ruby

    Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...

    reset_jetbrains_eval_windows.vbs

    可以无限重置

    ruby_1_9_3_core_rdocs.gz

    8. **元编程**:Ruby的元编程能力是其一大特色,通过`class_eval`、`instance_eval`和`define_method`等方法,可以在运行时动态修改类和对象的行为。 9. **线程与并发**:Ruby 1.9.3引入了全局解释器锁(GIL),...

    stm3210c-eval_fw.zip_STM3210C-EVAL_STM3210C-EVAL board_STM3210C_

    STM3210C-EVAL_FW.zip 包含的是针对STM3210C-EVAL评估板的固件,这是由意法半导体(STMicroelectronics)设计的一款微控制器开发平台,用于测试和开发基于STM3210C系列的嵌入式应用。STM3210C是STM32系列中的一个...

    脚本编程之: ruby_bcyy_jb51.net

    6. **元编程**:Ruby的元编程特性,如`class_eval`、`instance_eval`、`method_missing`等,以及如何利用它们来增强代码的动态性。 7. **测试驱动开发(TDD)**:Ruby社区非常注重TDD,因此可能包含关于Rspec或Test::...

    STM3210C-EVAL.rar_1728389_STM3210C _STM3210C-EVAL_STM3210C-EVAL_

    STM3210C-EVAL是一款基于STM32系列微控制器的评估板,由意法半导体(STMicroelectronics)设计,用于开发和测试STM3210C微控制器的功能。这个压缩包文件包含了与STM3210C-EVAL相关的详细代码,这些代码已经过测试并...

    ug885_VC707_Eval_Bd_evaluation_virtex6evaluation_vc707_

    本文将深入探讨Xilinx Virtex-6 FPGA评估板VC707的相关知识,该文档“ug885_VC707_Eval_Bd”提供了全面的评估方法和实践指导。Virtex-6系列是Xilinx公司推出的一款高性能、低功耗的FPGA(现场可编程门阵列),在电子...

    event_type_entity_extract_eval.csv

    CCKS2019赛题《面向金融的事件主题》数据,为了方便以后下载,所以上传到CSDN上,因为在查找数据的时候发现只有train数据集,而没有eval数据集,所以上传上去,方便以后学习的时候下载。

    reset_jetbrains_eval_mac_linux.zip

    idea,pycharm 重置工具,恢复安装设置idea,pycharm 重置工具,恢复安装设置idea,pycharm 重置工具,恢复安装设置idea,pycharm 重置工具,恢复安装设置idea,pycharm 重置工具,恢复安装设置idea,pycharm 重置...

    DELL_iDRAC9 _Ent_Ext _Eval _Lic.rar

    8. **许可证管理**:如这个RAR文件中的"DELL_iDRAC9_Ent_Ext_Eval_Lic.xml",是用于激活iDRAC9企业版扩展功能的许可证文件,通常需要在服务器上导入以启用这些高级特性。 在使用这个评估许可证之前,用户需要确保...

Global site tag (gtag.js) - Google Analytics