簡體   English   中英

如何將 &str 列表轉換為靜態 &str 列表?

[英]How to convert a list of &str into a list of static &str?

所以我是 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 中添加它?

編輯:另一個問題 - 如何在不修改傳入的函數參數的情況下添加它? 我需要一個新的可變變量來克隆 possible_anagrams 嗎? 我問是因為我認為 kata 不會讓我控制最初傳入的內容。 但是一旦我進入函數內部,我就可以控制我可以對參數做什么。

您可以為切片的&str指定生命周期

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM