关闭是穷人的对象,反之亦然。
我看过这个声明at many places在网上 (包括SO)但我不太明白这意味着什么。有人可以解释一下它的确切含义吗?
如果可能,请在您的答案中包含示例。
对象是穷人的闭包。
考虑Java。 Java 是一种面向对象的编程语言,没有对真正的词法闭包的语言级别支持。作为一种解决方法,Java 程序员使用匿名内部类来关闭词法范围内可用的变量(前提是它们是final
)。从这个意义上说,对象是穷人的封闭物。
关闭是穷人的对象。
考虑一下哈斯克尔。 Haskell 是一种函数式语言,没有对真实对象的语言级别支持。然而,它们可以使用闭包进行建模,如中所述thisOleg Kiselyov 和 Ralf Lammel 的优秀论文。从这个意义上说,闭包是穷人的对象。
如果您有面向对象的背景,您可能会发现用对象来思考更自然,因此可能将它们视为比闭包更基本的概念。如果您有 FP 背景,您可能会发现闭包的思考更自然,因此可能将它们视为比对象更基本的概念。
这个故事的寓意是闭包和对象是可以相互表达的想法,没有一个比另一个更基本。这就是正在考虑的声明的全部内容。
在哲学上,这被称为模型相关的现实主义.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)