我有一个包含一个成员的结构:
pub struct Term<'a>(pub &'a str);
我还有Vec<Term>
,我想将Vec
转换为Iterator
,然后将&str
小写,例如:
pub fn add_vec(document: Vec<Term<'a>>) {
let m_term = document.into_iter().map(
|dx| Term(dx.0.to_lowercase().as_str())
).collect::<Vec<_>>();
}
但我看到了这个错误:
error: borrowed value does not live long enough
--> src/tfidf.rs:47:23
|
47 | |dx| Term(dx.0.to_lowercase().as_str())
| ^^^^^^^^^^^^^^^^^^^ - temporary value only lives until here
| |
| temporary value created here
|
note: borrowed value must be valid for the lifetime 'a as defined on the block at 44:55...
我想我明白问题是什么,但我不知道如何将String
to_lowercase()
的{{1}}结果转换为&str
,其生命周期为{{1} }}。