对于在不同数据类型中接受其参数的函数,正确的术语是什么?

时间:2016-04-16 07:52:42

标签: oop language-agnostic

最近,我正努力向某位同事解释某种方法的运作方式。问题与我不知道某个术语(可能存在)有关。采取这样的函数:

function myFunct (arg) {
    if (typeof arg == "number") {
        // ...
    }

    if (typeof arg == "string") {
        // ...
    }
}

根据arg的数据类型,该方法会有所不同。对于在不同数据类型中接受其参数的此类函数,正确的术语是什么?

1 个答案:

答案 0 :(得分:2)

这叫做" polymorphism",这里是wikipedia的定义:

  

...多态函数,可以应用于不同类型的参数,但根据应用它们的参数类型(也称为函数重载或运算符重载)表现不同

在静态类型语言中,如C ++,可以定义多个具有相同名称但不同参数的函数。例如myFunct(int arg)myFunct(string arg)

在动态类型语言中,如php或python,该函数可以接受任何类型的参数,并根据类型中的类型执行不同的操作。