我有一个结构和方法:
use std::collections::HashMap;
struct Population<'a> {
size: usize,
has_crossover: bool,
mutation_rate: f32,
members: Vec<&'a str>,
memo: HashMap<&'a str, u32>,
}
impl<'a> Population<'a> {
fn add_strings(&mut self) {
let condition = false;
while condition {
let member = create_random_string();
self.members.push(&member[..]);
self.memo.insert(&member[..], 3);
}
}
}
fn create_random_string() -> String {
String::new()
}
我有什么办法可以将成员借阅的期限延长到'a
吗?
我认为这是不可行的,因为成员会在运行while循环后超出范围,但是我能想到解决此问题的唯一方法是让Vec
接受String
而不是s,然后将我在函数内部创建的字符串的克隆推到其中,这简直感觉不对。