给出i32s 的2D向量:
let v = vec![
vec![1, 1, 1],
vec![0, 1, 0],
vec![0, 1, 0],
];
Run Code Online (Sandbox Code Playgroud)
如何将其传递给函数以最终打印其详细信息?我试过了:
fn printVector(vector: &[[i32]]) {
println!("Length{}", vector.len())
}
Run Code Online (Sandbox Code Playgroud)
您可以使用它接受的切片功能T,其中T也可以作为一个参考片:
fn print_vector<T>(value: &[T])
where
T: AsRef<[i32]>,
{
for slice in value {
println!("{:?}", slice.as_ref())
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想接受任何类型而不仅仅是i32,你也可以概括一下:
fn print_vector<T, D>(value: &[T])
where
T: AsRef<[D]>,
D: Debug,
{
for slice in value {
println!("{:?}", slice.as_ref())
}
}
Run Code Online (Sandbox Code Playgroud)
由于您要将向量传递给函数,因此以下代码应该可以工作:
fn print_vector(vector: Vec<Vec<i32>>) {
println!("Length{}", vector.len())
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |