Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 对于在不同数据类型中接受参数的函数,正确的术语是什么?_Oop_Language Agnostic - Fatal编程技术网

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

Oop 对于在不同数据类型中接受参数的函数,正确的术语是什么?,oop,language-agnostic,Oop,Language Agnostic,最近,我努力向我的一位同事解释某种方法的工作原理。这个问题与我不知道某个术语(可能存在)有关。采用如下函数: function myFunct (arg) { if (typeof arg == "number") { // ... } if (typeof arg == "string") { // ... } } 根据arg的数据类型,该方法会执行不同的操作。对于在不同数据类型中接受其参数的函数,正确的术语是什么?这称为“多

最近,我努力向我的一位同事解释某种方法的工作原理。这个问题与我不知道某个术语(可能存在)有关。采用如下函数:

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

    if (typeof arg == "string") {
        // ...
    }
}
根据
arg
的数据类型,该方法会执行不同的操作。对于在不同数据类型中接受其参数的函数,正确的术语是什么?

这称为“多态性”,以下是以下定义:

。。。多态函数,可应用于不同类型的参数,但根据应用它们的参数的类型,其行为会有所不同(也称为函数重载或运算符重载)

静态类型语言,如C++,可以定义具有相同名称但不同参数的多个函数。例如

myFunct(int-arg)
myFunct(string-arg)


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

我想在这里说“动态调度函数”,但我知道这不是它的正式名称。我不确定它是否有一个。不确定,我宁愿称它为假多态性,因为所示的示例不是一个真正的重载函数。它只是检查参数的类型,然后做不同的事情。在真正的多态性中——据我所知,根据类型会调用不同的函数(相同的名称但不同的实现)。在做一些研究时,我经常发现术语“函数多态性”,通常与语言相关,不支持真正的多态性。@Sven,你能提供一个解释功能多态性的链接吗?