Ruby 的情况并非如此。Ruby程序 - 它的实际代码 - 可以在程序运行时进行修改。甚至可以在运行时输入新的 Ruby 代码并执行新代码而无需重新启动程序。
大多数情况下,你可能会在双引号字符串中的 和 }
分隔符之间嵌入相当简单的代码。通常你可以嵌入变量名,或数学表达式:
str_eval.rb
在字符串中编写整个程序可能是一个非常毫无意义的努力。但是,在其它情况下,这种类似的特性可以更有效地使用。例如,Rails 框架广泛使用元编程。你可以使用元编程来探索人工智能和“机器学习”(machine learning)。实际上,任何因程序执行过程中由于交互而修改程序行为进而受益的应用程序本质上都是元编程。
动态(元编程)特性在 Ruby 中无处不在。例如,思考属性访问器:将符号(例如 )传递给
attr_accessor
方法会最终创建两个方法(aValue
和 aValue=
)。