如何在控制台上查看 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。