我刚开始学习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);
它期待一个向量,我给它一个向量。显然,它还需要一些其他类型的矢量吗?
答案 0 :(得分:1)
它期待一个向量,我给它一个向量。
不,你弄错了:)它期待一个切片并且你给它一个向量。使用as_slice()
方法从&[u8]
获取Vec<u8>
:
let contents = inflate_bytes(compressed_contents.as_slice());