有没有一种优雅的方式来比较Option<Vec<u8>>
和Option<&[u8]>
的平等性?(或等效于Result
而不是Option
.)
有没有一种优雅的方式来比较Option<Vec<u8>>
和Option<&[u8]>
的平等性?(或等效于Result
而不是Option
.)
你只需要将Option<Vec<u8>>
转换为Option<&[u8]>
,使用as_ref()
和Index
:
fn foo(a: Option<Vec<u8>>, b: Option<&[u8]>) -> bool {
a.as_ref().map(|x| &x[..]) == b
}
从Rust 1.40开始,您可以使用as_deref()
:
fn foo(a: Option<Vec<u8>>, b: Option<&[u8]>) -> bool {
a.as_deref() == b
}