在 Rust 中,这取决于您要将这些值用于什么目的。我喜欢这个创建重复字符串的答案。“行”取决于您是否需要在 rust 中明确表示的引用或复制语义。borrows向量是一堆借来的字符串,它们引用x_s. 向量是原始字符串的copies一堆内存副本。x_s
use std::iter;
fn main() {
let num_rows = 1000;
let num_cols = 1000;
let x_s : String = iter::repeat('x').take(num_cols).collect();
// pick one of the below
let borrows : Vec<&str> = vec![&*x_s ; num_rows];
let copies : Vec<String> = vec![x_s.clone() ; num_rows];
}
最后一行中的调用clone是因为vec宏将发送的值移动到其中。在. vec_ num_rows_ copies请注意,clone在大多数用例中这可能不是必需的,因为您通常不会borrows同时copies在同一范围内。
作为警告,我对生锈还很陌生,但相信这是一个不错的答案。我很高兴接受更正。