vector - 我如何通过 Vec> 一个函数?
问题描述
给定一个 s 的二维向量i32
:
let v = vec![
vec![1, 1, 1],
vec![0, 1, 0],
vec![0, 1, 0],
];
如何将其传递给函数以最终打印其详细信息?我试过:
fn printVector(vector: &[[i32]]) {
println!("Length{}", vector.len())
}
解决方案
您可以使用一个函数,它接受一个切片T
whereT
也可以作为切片引用:
fn print_vector<T>(value: &[T])
where
T: AsRef<[i32]>,
{
for slice in value {
println!("{:?}", slice.as_ref())
}
}
如果你想接受任何类型而不是 just i32
,你也可以概括一下:
fn print_vector<T, D>(value: &[T])
where
T: AsRef<[D]>,
D: Debug,
{
for slice in value {
println!("{:?}", slice.as_ref())
}
}
推荐阅读
- python - 从 PyQt5 迁移到 PySide2 时的 QVariant 替代方案
- javascript - 通过 CSS 选择器返回 DOM 元素
- c# - 查找链表中的最小值
- angular - 为什么引用的模块没有解析?
- python - 词频分析 - TypeError: 'list' 和 'int' 的实例之间不支持'>='
- vue.js - 弹出关闭时 ElementUI 日期时间选择器更新
- r - 如何使用 pscl 包中的 rollcall 和 Ideal 获得一致的符号方向?
- laravel - Laravel AuthenticateSession 中间件多重守卫
- kubernetes - 如何为 statefulset 无头服务获取 SRV DNS 地址
- vb.net - 文本框中的击键导致 LostFocus 或离开