`

关于Ruby动态方法定义的区别

 
阅读更多
A.class_eval(<<-EOF, __FILE__, __LINE__ + 1)
  def method_a 
   puts "calling method_a......"
  end
EOF





A.class_eval <<-EOF
 def method_b
   puts "calling method_b......"
 end
EOF



A.new.method_a
A.new.method_b



如上,两种方法定义的区别在于,如果你使用了带有 FILE, LINE + 1 时,即使是字符串代码块中抛出的异常,也会显示正确的文件中位置,有利于你调试
分享到:
评论

相关推荐

    Ruby 方法、类

    在Ruby中,方法和类是构建程序的基本元素,它们是实现代码重用和组织的关键概念。 ### 方法(Methods) 方法在Ruby中是可重复使用的代码块,它们接受参数,执行特定任务,并可能返回值。方法定义使用`def`关键字...

    Ruby-Referral一个命令行工具用于查找过滤和排序Ruby代码的定义和引用

    方法是类或模块中定义的行为,Referral能找出方法的调用位置和实现,这对于理解代码流程和优化性能至关重要。变量在Ruby中分为局部变量、实例变量、类变量和全局变量,Referral能够追踪它们的使用情况,有助于识别...

    Ruby-Functo是ruby中的可组合方法对象

    标题提到的“Ruby-Functo”就是Ruby中实现可组合方法对象的一个库,它为开发者提供了更灵活和模块化的代码组织方式。 Functo库的设计理念是让函数或方法像对象一样可以被操作、组合和复用。在传统的面向对象编程中...

    06Ruby 方法.docx

    Ruby 方法的定义遵循一定的规则,例如方法名必须以小写字母开头。 #### 定义方法 方法的基本定义结构如下: ```ruby def method_name # 方法体 end ``` 若要定义接受参数的方法,语法稍作调整: ```ruby def ...

    Ruby元编程pdf

    2. **方法**:Ruby的方法定义可以嵌套,并且可以动态添加或删除。`method_missing`是Ruby的一个特殊方法,当调用一个未定义的方法时,系统会自动调用它,允许开发者处理未知的方法调用。 3. **变量**:Ruby的变量...

    Ruby编程Ruby Programming

    - **动态性**:Ruby支持运行时修改代码结构,允许开发者在程序运行过程中改变类和方法的行为。 - **元编程能力**:Ruby提供了一种称为元编程的技术,使得程序可以自我修改和自我扩展。 ### 二、Ruby编程基础 #### ...

    Ruby元编程 源代码 Metaprogramming Ruby source code

    1. **方法定义**:Ruby允许在运行时定义新方法,如`define_method`。这个方法接受一个符号作为方法名和一个代码块,然后在指定的对象或类上创建一个新方法。 2. **类和模块的开放性**:Ruby的类和模块在运行时可以...

    Best of Ruby Quiz

    5. **元编程**:Ruby的元编程能力强大,如`send`方法、类方法定义、`class_eval`、`instance_variable_get/set`等,这些工具使得Ruby代码能自我修改和扩展。 6. **Ruby on Rails框架**:虽然书名未提及,但Ruby与...

    元编程 Ruby

    1. 动态方法定义:Ruby允许在运行时定义新的方法,这包括使用define_method、class_eval等方法。 2. 方法拦截:Ruby提供了method_missing方法,它允许我们拦截对当前对象中未定义方法的调用,并进行自定义处理。 3...

    笨方法学ruby-中文版

    书中会讲解类、对象、继承、模块(mixins)以及方法的动态性,这些都是理解Ruby编程的关键。 3. **异常处理**:Ruby中的异常处理机制允许程序在遇到错误时优雅地恢复或终止。书中会介绍如何使用begin/rescue/ensure...

    Ruby 编程语言的书籍

    2. **元编程**:深入分析Ruby强大的元编程能力,包括动态方法定义、反射、符号处理等内容。这部分是理解Ruby强大之处的关键。 3. **动态编程技巧**:通过具体示例展示如何利用Ruby的动态特性编写自修改程序,提升...

    ruby元编程.pdf

    6. 动态方法和属性的创建:Ruby元编程允许程序在运行时动态地定义方法和属性。这为程序提供了极大的灵活性,但也需要恰当掌握,以避免代码变得难以维护。 7. 调用者方法(Method Missing):Ruby提供了一个特殊的...

    Ruby元编程第二版中文

    1. **方法定义与调用**:Ruby允许在运行时定义和修改方法,如`define_method`函数可以动态创建方法,而`send`或`__send__`则用于在运行时调用方法。 2. **类与模块操作**:Ruby的`Class.new`和`Module.new`可以用来...

    Ruby基础教程(中文第4版)

    在Ruby中,函数和方法的区别在于定义方式,但都可以用来组织代码并实现复用。Ruby还支持块(block),这是一种特殊的语法结构,常与迭代器配合使用,使得代码更加简洁。 面向对象编程是Ruby的强项。本书将深入探讨...

    ruby官方chm文档

    《ruby23-language.chm》文档深入讲解了Ruby语言的特性,如动态性、元编程、闭包和块、方法定义与调用、变量作用域等。Ruby允许在运行时修改代码,这使得元编程成为其强大之处。理解如何使用`eval`、`class_eval`和`...

    ruby(前途大好的ruby+rains)

    4. **块和 Proc**:Ruby中的块是一段可执行的代码,可以与方法一起使用,通过`do..end`或`{..}`定义。Proc是代码块的可存储形式,可以作为参数传递或赋值给变量。 5. **闭包**:Ruby中的 Proc 和 lambda 实现了闭包...

Global site tag (gtag.js) - Google Analytics