Как преобразовать список & str в список stati c & str? - PullRequest
1 голос
/ 08 февраля 2020

Итак, я новичок в Rust и работаю над упражнением на строку. У меня есть следующее:

pub fn anagrams_for<'a>(word: &str, possible_anagrams: &[&str]) -> HashSet<&'a str> {
    let mut my_hashset: HashSet<&'a str> = HashSet::new();
    for anagram in possible_anagrams {
        if is_anagram(word, anagram) {
            my_hashset.insert(anagram);
        }
    }
    return hs;
}

Но я получаю следующую ошибку:

explicit lifetime required in the type of `possible_anagrams`: lifetime `'a` required

Как добавить это в Rust?

РЕДАКТИРОВАТЬ: Еще один вопрос - как бы я добавить это без изменения параметров функции, переданных в? Нужна ли мне новая изменяемая переменная, которая клонирует возможную_анаграмму? Я спрашиваю, потому что я думаю, что ката не позволит мне контролировать то, что передается изначально. Но я буду контролировать, что я могу сделать с параметром, как только я попаду внутрь функции.

1 Ответ

1 голос
/ 08 февраля 2020

Вы можете указать время жизни для среза &str s

pub fn anagrams_for<'a>(word: &str, possible_anagrams: &[&'a str]) -> HashSet<&'a str> {
    let mut my_hashset: HashSet<&'a str> = HashSet::new();
    for anagram in possible_anagrams {
        if is_anagram(word, anagram) {
            my_hashset.insert(anagram);
        }
    }
    return my_hashset;
}

rust.playground

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...