动态类型比静态类型更受欢迎的示例是什么?

时间:2015-08-03 22:20:56

标签: typing duck-typing dynamic-typing static-typing

让我们采用一个增加整数的简单函数:

静态输入:

function incrementNumber(int n) {
    n = n + 1;
}    

动态类型:

function incrementNumber(n) {
    if (type of n != int) {
        throw Error;
    }
    n = n + 1;
}    

这些实现了相同的目标,但由于"类型检查"动态方法更加丑陋和长久。这是必需的。

我已经看到很多程序员使用这种方法,这让我想知道动态类型语言究竟有什么好处,因为大多数函数都需要像这样的参数检查?

您是否有任何动态类型比静态类型更有效(或看起来)的示例?

1 个答案:

答案 0 :(得分:0)

如果要在做任何事情之前检查数据类型,它没有任何好处。

动态类型只有在您知道函数存在或者可以应用运算符但编译器在运行时才知道它时才有意义。或者在没有定义其属性的情况下创建对象。