Tag: 变体

鸭子的input与旧的“变种”types和/或接口有什么不同?

我一直看到“鸭子打字”这个词汇泛滥,甚至横跨了一两个代码。 我太懒了,忙着做我自己的研究,有人能告诉我,简单地说: “鸭型”和旧型“变型”之间的区别,以及 提供了一个例子,我可能更喜欢鸭子打字变种,和 提供一个例子,我将不得不使用鸭子打字完成? 我不是故意怀疑这个“新”构造的力量,我并不是在拒绝这个研究,而是回避这个问题,但是我正在扼杀我所看到的所有植绒炒作最近。 它看起来像没有打字(又名dynamic打字)给我,所以我没有看到马上的优势。 附录:感谢迄今的例子。 在我看来,使用像'O-> can(Blah)'这样的东西就等同于做一个reflection查找(这可能不便宜),和/或大概就像编译器可能会说的(O是IBlah)一样能够检查你,但后者有区分我的IBlah接口和你的IBlah接口的优势,而另外两个则没有。 当然,每个方法都有很多小的接口会变得混乱,但是接下来可以检查很多单独的方法。 …所以我再也没有得到它。 这是一个很棒的节省时间,还是一个全新的袋子里的老东西? 这个例子需要打字吗?