簡體   English   中英

如何克隆 str 的向量並在 rust 中創建一個小寫的新列表?

[英]How can I clone a vector of str and create a new list as lowercase in rust?

我對 Rust 中的代碼有疑問

我有一個 &str 的向量,我想創建另一個但所有值都是小寫的。

在 javascript 中,如下所示:

const list = ['Por que algo?', 'Por que outra coisa?'];
const newList = list.map(item => item.toLowerCase());

我正在嘗試在 rust 中進行此操作,但我不能

    let list: Vec<&str> = vec!["Por que o Freeza matou o Kuririn?", "Por que o Goku ficou nervoso"];              
    let list_lower_case: Vec<&str> = list.to_vec().iter().map(|i| i.to_lowercase()).collect();  

list_lower_case 轉換為&&str ,但我只需要&str

我該怎么做才能解決這個問題?

這與我在運行它時遇到的錯誤不同。 我認為問題在於to_lowercase方法實際上分配了一個帶有新大小寫的新字符串。 因此,您無法保留對它的引用,因為它將在map之后刪除。 如果您通過將&str更改為String來允許 vec 取得所有權,它就可以工作:

fn main() {
    let list: Vec<&str> = vec!["Por que o Freeza matou o Kuririn?", "Por que o Goku ficou nervoso"];
    let list_lower_case: Vec<String> = list.iter().map(|i| i.to_lowercase()).collect();
}

(我還刪除了多余的to_vec

暫無
暫無

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

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