【发布时间】:2010-01-08 07:35:28
【问题描述】:
通过使用 javascript 拓宽我的视野以及我的 python 经验,我提出了一些想法。
如果一个实体对外部客户的视觉是通过它的接口,那么类型的目的是什么?
在静态类型语言中,类型具有非常重要的核心重要性。类型和接口是严格关联的。例如,在 java 中,当您声明一个接口 FooIface 并且一个对象实现该接口时,您不能在需要 BarIface 的上下文中使用它,即使两者在方法、签名和异常方面完全相同。
在 python 中不是这样。即使两个对象具有完全不同且不相关的类型,只要它们的接口相同,它们就可以完全透明地互换。如果它叫起来像鸭子一样走路,那就是鸭子。我可以通过在运行时完全改变对象的接口来完全改变对象的性质,但它会保留原始类型。
这种观点在 javascript 中发挥到了极致,任何原型链中的每个对象都只是一个对象。你在 javascript 中询问每个对象的类型,它会告诉你,它是一个对象。
在我看来,这些语言的类型概念已经到了无用的极限。那么真正重要的是什么?类型在动态类型语言中有真正的意义吗?
【问题讨论】: