如何在控制台上查看 Rust 函数的 运行 输出?
How to see running output from a Rust function on console?
我在 Rust 中有一个函数,它 returns 一组可能的组合数量的向量向量,给定需要组合的数字数量 (nCk)。
如果集合为[1,2,3]
,位数(k)为2,则输出为:
[[1, 2], [1, 3], [2, 3]]
但是,如果我选择 k 是一个大数,它会花费太多时间并在完成处理后立即打印所有输出。
它有可能一直给我 运行 输出吗?
在 Java 中,我有同样的东西,它给了我 运行 输出。
这是我的函数:
fn comb<T>(slice: &[T], k: usize) -> Vec<Vec<T>>
where
T: Copy,
{
if k == 1 {
return slice.iter().map(|x| vec![*x]).collect::<Vec<Vec<T>>>();
}
if k == slice.len() {
return vec![slice.to_vec()];
}
let mut result = comb(&slice[1..], k - 1)
.into_iter()
.map(|x| [&slice[..1], x.as_slice()].concat())
.collect::<Vec<Vec<T>>>();
result.extend(comb(&slice[1..], k));
return result;
}
我解决了问题。
没有 运行 输出,因为函数本身没有 print 语句,尽管它存在于 main 函数中。
在函数本身添加打印语句解决了问题:]
let mut result = comb(&slice[1..], k - 1)
.into_iter()
.map(|x| {
let output = [&slice[..1], x.as_slice()].concat();
println!("{:?}", output);
output
})
.collect::<Vec<Vec<T>>>();
此外,您需要稍微更改签名:
T: Copy + Debug
T
现在也需要实现 Debug。
我在 Rust 中有一个函数,它 returns 一组可能的组合数量的向量向量,给定需要组合的数字数量 (nCk)。
如果集合为[1,2,3]
,位数(k)为2,则输出为:
[[1, 2], [1, 3], [2, 3]]
但是,如果我选择 k 是一个大数,它会花费太多时间并在完成处理后立即打印所有输出。
它有可能一直给我 运行 输出吗?
在 Java 中,我有同样的东西,它给了我 运行 输出。
这是我的函数:
fn comb<T>(slice: &[T], k: usize) -> Vec<Vec<T>>
where
T: Copy,
{
if k == 1 {
return slice.iter().map(|x| vec![*x]).collect::<Vec<Vec<T>>>();
}
if k == slice.len() {
return vec![slice.to_vec()];
}
let mut result = comb(&slice[1..], k - 1)
.into_iter()
.map(|x| [&slice[..1], x.as_slice()].concat())
.collect::<Vec<Vec<T>>>();
result.extend(comb(&slice[1..], k));
return result;
}
我解决了问题。
没有 运行 输出,因为函数本身没有 print 语句,尽管它存在于 main 函数中。 在函数本身添加打印语句解决了问题:]
let mut result = comb(&slice[1..], k - 1)
.into_iter()
.map(|x| {
let output = [&slice[..1], x.as_slice()].concat();
println!("{:?}", output);
output
})
.collect::<Vec<Vec<T>>>();
此外,您需要稍微更改签名:
T: Copy + Debug
T
现在也需要实现 Debug。