作为初学者,我正在学习Rust。 我很好奇我们如何使用数值作为泛型参数,这些参数将在编译时类似于C ++中的模板进行编译
这是等效的C ++代码。
template<class T, int dim>
struct vec {
std::array<T, dim> data;
vec(): data() {}
vec(const vec<T, dim>& obj): data(obj.data) {}
~vec() {}
};
int main() {
vec<float, 3> v3;
}
上面的代码将与
相同地进行编译struct vec {
std::array<float, 3> data;
vec(): data() {}
vec(const vec<float, 3>& obj): data(obj.data) {}
~vec() {}
};
int main() {
vec v3;
}
答案 0 :(得分:3)
我相信您正在寻找const generics,但尚未降落到稳定的Rust中。您可能会发现使用不稳定的Rust的示例here。
答案 1 :(得分:-3)
您知道吗,Rust中实际上有泛型!
我强烈建议您仔细阅读"The Rust Programming Language", TRPL。
您的问题可以在here中回答。
您实际上并不需要Rust中的构造函数和析构函数。 Rust将为您做到。 TRPL提供了可靠的example。
此外,对于矢量,已经支持通用数据类型,因此您不必自己实现它。检出this。