预期的矢量但发现了struct collections :: vec :: Vec

时间:2014-09-02 15:51:08

标签: rust

我刚开始学习Rust,我偶然发现了这个愚蠢的问题:

error: mismatched types: expected `&[u8]` but found `&collections::vec::Vec<u8>` (expected vector but found struct collections::vec::Vec)

我的代码如下所示:

let compressed_contents = match File::open(&Path::new(path)).read_to_end() {
    Ok(f) => f,
    Err(e) => fail!("File error: {}", e),
};
let contents = inflate_bytes(&compressed_contents);

它期待一个向量,我给它一个向量。显然,它还需要一些其他类型的矢量吗?

1 个答案:

答案 0 :(得分:1)

  

它期待一个向量,我给它一个向量。

不,你弄错了:)它期待一个切片并且你给它一个向量。使用as_slice()方法从&[u8]获取Vec<u8>

let contents = inflate_bytes(compressed_contents.as_slice());