首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鸭型与杂耍型比较

鸭型与杂耍型比较
EN

Stack Overflow用户
提问于 2018-12-06 13:59:13
回答 1查看 1.2K关注 0票数 1

在一些文献中,我读到Javascript中的变量支持Duck类型,而PHP中的变量支持Type杂耍。我对此有点困惑,因为在Javascript和PHP中声明变量时似乎很相似。这些术语之间的主要区别是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 14:11:51

我认为您正在混合:类型杂耍,如PHP文档所解释的,是关于在需要时自动将转换成更适合的类型的值的灵活性。例如,以下功能运行良好:

代码语言:javascript
复制
$a = "42";     // now $a is a string
$a = $a + 42;  // now $a is an integer
$a = $a + 23;  // now $a is still an integer
$a = $a + 1.3; // now $a is a float

另一方面,鸭子类型是关于对象本身是如何行为的问题:

如果它看起来像鸭子,游泳像鸭子,叫声像鸭子,那么它很可能是鸭子。

如果一个对象有适当的方法,我们可以假设它是一个特定的类型。如果它像鸭子一样包含quackswim方法,那么它可以是鸭子。特别是对于JS,在Example of Javascript Duck Typing?中有一些很好的例子--这里不涉及类型转换。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53653064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档