有没有一种方法可以将在函数内部创建的变量借用到Vec?

时间:2019-10-15 13:29:31

标签: rust

我有一个结构和方法:

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,然后将我在函数内部创建的字符串的克隆推到其中,这简直感觉不对。

0 个答案:

没有答案