动态编程

在前面的 19 章中,我们介绍了 Ruby 语言的大量特性。我们还没有详细研究过的一件事就是 Ruby 的“动态编程”(dynamic programming)功能。

如果你只使用了非动态语言(比如 C 或 Pascal 系列中的一种语言),那么编程中的动态可能需要一点时间来习惯。在进一步讨论之前,让我们用“动态”语言来澄清我的意思。事实上,这个定义有点模糊,并不是所有声称“动态”的语言拥有所有相同的特征。然而,在一般意义上,提供一些可以在运行时修改程序的手段的语言可以被认为是动态的。动态语言的另一个特征是它能够改变给定变量的类型 - 这是我们在本书的例子中无数次做过的事情。

可以区分“动态类型”语言(如 Ruby)和“静态类型语言”(其中变量的类型是预先声明和固定的),如 C,Java 或 Pascal。在本章中,我将集中讨论 Ruby 的自修改(self-modifying)功能。