Rust 需要向量,但找到结构集合::vec::vec

Rust 需要向量,但找到结构集合::vec::vec,rust,Rust,我刚开始学习生锈,我偶然发现了这个愚蠢的问题: error: mismatched types: expected `&[u8]` but found `&collections::vec::Vec<u8>` (expected vector but found struct collections::vec::Vec) 它需要一个向量,我给它一个向量。很明显,它还需要其他类型的向量 它需要一个向量,我给它一个向量 不,你搞错了:)它需要一个切片,你给它一个向量。使

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

error: mismatched types: expected `&[u8]` but found `&collections::vec::Vec<u8>` (expected vector but found struct collections::vec::Vec)
它需要一个向量,我给它一个向量。很明显,它还需要其他类型的向量

它需要一个向量,我给它一个向量

不,你搞错了:)它需要一个切片,你给它一个向量。使用
as_slice()
方法从
Vec
获取
和[u8]


为什么错误消息说
预期的向量,但找到了X
?@kaiselgren,对不起,但我看不出错误消息是怎么说的。它说
预期的`&[u8]`但是…
,但是
&[T]
是一个片段,而不是一个向量。@VladimirMatveev在错误消息的最后它确实说了
(预期的向量但是找到了struct collections::vec::vec)
@ChrisJones,啊,对不起,你完全正确,我感到羞耻。这绝对是编译器中的一个遗留问题,没有人费心清理。直到最近(甚至现在),它还在一些错误消息中以
~T
Gc
的形式打印了
Box
,尽管这种语法早已过时。
let contents = inflate_bytes(compressed_contents.as_slice());