作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在一些文献中,我读到Javascript中的变量支持Duck Typing,而PHP中的变量支持Type Juggling。我对此有点困惑,因为在 Javascript 和 PHP 中声明变量时它看起来很相似。这些术语之间的主要区别是什么?
最佳答案
我认为您正在混淆:类型杂耍,正如 PHP 文档所解释的那样,是指在需要时自动转换值到更适合的类型的灵 active 。例如,以下工作正常:
$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
另一方面,鸭子类型是关于对象本身如何行为的问题:
If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.
如果一个对象有正确的方法,我们就可以假设它是特定类型的。如果它像鸭子一样包含 quack
或 swim
方法,那么它可以是鸭子。特别是对于 JS,有很好的例子 Example of Javascript Duck Typing? - 这里不涉及类型转换
关于javascript - 鸭子打字与类型杂耍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53653064/
我是一名优秀的程序员,十分优秀!