Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.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
在typescript中,如何编写一个函数来处理任意维数组(例如:array<;number>;,array<;array<;number>;,…)? 在C++中,我可以编写模板函数: #include <stdio.h> #include <vector> template <typename V> void f(V& v){ for(auto& e : v){ f(e); } printf("\n"); } template <> void f(int& v){ printf("%d ",v); } 我相信我在C++中可能是错误的方法_C++_Arrays_Vector_Typescript_Typescript2.0 - Fatal编程技术网

在typescript中,如何编写一个函数来处理任意维数组(例如:array<;number>;,array<;array<;number>;,…)? 在C++中,我可以编写模板函数: #include <stdio.h> #include <vector> template <typename V> void f(V& v){ for(auto& e : v){ f(e); } printf("\n"); } template <> void f(int& v){ printf("%d ",v); } 我相信我在C++中可能是错误的方法

在typescript中,如何编写一个函数来处理任意维数组(例如:array<;number>;,array<;array<;number>;,…)? 在C++中,我可以编写模板函数: #include <stdio.h> #include <vector> template <typename V> void f(V& v){ for(auto& e : v){ f(e); } printf("\n"); } template <> void f(int& v){ printf("%d ",v); } 我相信我在C++中可能是错误的方法,c++,arrays,vector,typescript,typescript2.0,C++,Arrays,Vector,Typescript,Typescript2.0,你完全是函数模板的专门化。 总之,在java或C++中,类型化的泛型更像泛型,而不是C++中的模板。 不能定义完整的专门化。在C++中,您完全是函数模板的专门化。 总之,在java或C++中,类型化的泛型更像泛型,而不是C++中的模板。 您不能定义完全专门化。您只能有一个同名函数,因此需要将两个部分协调到同一个函数中。在这种情况下,对数组进行简单检查就足够了 f(v: any) { if (Array.isArray(v)) for (let e in v) this.f

你完全是函数模板的专门化。 总之,在java或C++中,类型化的泛型更像泛型,而不是C++中的模板。
不能定义完整的专门化。在C++中,

您完全是函数模板的专门化。 总之,在java或C++中,类型化的泛型更像泛型,而不是C++中的模板。
您不能定义完全专门化。

您只能有一个同名函数,因此需要将两个部分协调到同一个函数中。在这种情况下,对数组进行简单检查就足够了

f(v: any)
{
  if (Array.isArray(v))
    for (let e in v)
      this.f(e);
  else
    doSomething(v);
}

您只能有一个同名函数,因此需要将两个部分协调到同一个函数中。在这种情况下,对数组进行简单检查就足够了

f(v: any)
{
  if (Array.isArray(v))
    for (let e in v)
      this.f(e);
  else
    doSomething(v);
}
f<V>(v : V){
  for(let e in v){
    this.f(e);
  }
}

f<>(v : number){
}
Duplicate function implementation.
f(v: any)
{
  if (Array.isArray(v))
    for (let e in v)
      this.f(e);
  else
    doSomething(v);
}