在 JavaScript 中我们这样使用 泛型:
function sum<T>(x: T, y: T) {
return x + y;
}
console.log(sum(1,2)) //=> 3
console.log(sum('x','y')) //=> xy
在 C++ 中我们通过 template 关键字声明 泛型:
template <typename T> T const& sum(T const& x, T const& y) {
return x + y;
}
cout << sum(1, 2) << endl; //=> 3
cout << sum(1.1, 2.2) << endl; //=> 3.3
有时候太长了就拆成两行写:
template <typename T>
T const& sum(T const& x, T const& y) {
return x + y;
}
简单函数可以使用 inline 关键字,建议编译器将该函数内联(减少函数调用次数):
template <typename T>
inline T const& sum(T const& x, T const& y) {
return x + y;
}
使用 template 声明 类 的 泛型:
template <typename T>
class MyClass {}
评论区