如何在Rust中创建一个大小由运行时定义的数组?
基本上,在Rust中如何转换以下代码:
void f(int n){ return std::vector<int>(n); }
这在Rust中是不可能的:
let n = 15;
let board: [int, ..n];
注意:我看到在这里(链接)以简单的方式做到这一点是不可能的,但我拒绝接受这样一个简单的事情是不可能的 :p 非常感谢!
如何在Rust中创建一个大小由运行时定义的数组?
基本上,在Rust中如何转换以下代码:
void f(int n){ return std::vector<int>(n); }
这在Rust中是不可能的:
let n = 15;
let board: [int, ..n];
let n = 15; // number of items
let val = 17; // value to replicate
let v = std::vec::from_elem(val, n);
val
且值为n
的向量。 - Stein现代 Rust 中的正确方式是 vec![value; size]
。
值被克隆,这与其他语言相比是一种解脱。例如,vec![vec![]; 2]
创建一个向量,其中两个元素是独立的向量,总共有3个向量。Python 的 [[]] * 2
创建一个长度为2的向量,其中两个元素是(对)同一个嵌套向量的引用。