如何打印一个数组和一个向量?

5
我正在使用Rust编程,并想知道如何打印数组和向量。
let a_vector = vec![1, 2, 3, 4, 5];
let an_array = ["a", "b", "c", "d", "e"];

我希望在屏幕上打印出结果,应该是这样的:
[1, 2, 3, 4, 5]
["a", "b", "c", "d", "e"]

在Python中,它是这样的:

lst = ["a", "b", "c", "d", "e"]
print lst

并将其打印,显示如下:

["a", "b", "c", "d", "e"]

2
你看过https://dev59.com/Wl0a5IYBdhLWcg3wfY06吗? - oli_obk
此外,请阅读如何提出一个好问题?。在这个例子中,您应该包括您已经尝试过的内容。最好还包括一个MCVE。我也强烈建议阅读Rust编程语言,团队花了很多时间在上面。 - Shepmaster
感谢您的推荐。 - Ranj
2个回答

13
println!("{:?}", a_vector);
println!("{:?}", an_array);

{:?} 用于打印实现 Debug trait 的类型。常规的 {} 使用 Display trait,而 Vec 和数组不实现该 trait。


2
这仅适用于长度不超过32的数组(“数组仅具有长度为0..=32的std trait实现”)。是否有一种简单的方法来打印更长数组的内容? - Qinto

0
fn main() {

让 v = vec![12; 4]; 让 v1 = vec![7; 5];

//1. 通常,{} 将自动替换为任何参数,顺序排列。这些将被字符串化。

println!("{:?}", v);

println!("第一个向量:{0:?} 和第二个向量:{1:?} ", v, v1);

//上述结果 //[12, 12, 12, 12]

//First vector: [12, 12, 12, 12] and Second vector: [7, 7, 7, 7, 7]

//2.使用位置参数

 println!("{0:?}", v);

 println!("First vector: {0:?} and Second vector: {1:?}  ", v, v1);

// 上面的结果

//[12, 12, 12, 12]

//第一个向量:[12, 12, 12, 12] 和第二个向量:[7, 7, 7, 7, 7]

//2.你也可以为位置参数分配变量

 println!("{var1:?}", var1 =v);

 println!("First vector: {var1:?} and Second vector: {var2:?}  ", var1=v, var2=v1);

// 上述结果

//[12, 12, 12, 12]

//第一个向量:[12, 12, 12, 12] 和第二个向量:[7, 7, 7, 7, 7]

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接