我試圖創建一個String
s的向量來測試arg解析(因爲這是什麼std::env::args()
返回),但如何簡潔地做到這一點掙扎。簡單初始化一個字符串向量
我想要什麼:
let test_args = vec!["-w", "60", "arg"]; // should array of Strings
let expected_results = my_arg_parser(test_args);
這顯然是行不通的,因爲載體的內容都是&str
秒。
使用String::from
但作品卻不能很好地擴展和醜陋:)
let args = vec![String::from("-w"), String::from("60"), String::from("args")];
我可以映射在引用和返回字符串對象,但這似乎非常詳細:
let args = vec!["-w", "60", "args"].iter().map(|x| x.to_string()).collect::<Vec<String>>();
我應該只是創建一個幫助函數來完成轉換,還是有更簡單的方法?
感謝您的宏,這是相當不錯的!雖然'to_string'比'String :: From'略短,但是在'String :: from'上使用它有什麼好處? –
它實際上是等價的:看看'to_string'的實現https://doc.rust-lang.org/src/collections/up/src/libcollections/string.rs.html#1768-1774 – JDemler