我正在尝试创建一个String
向量来测试参数解析(因为这是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
稍微短一些,但使用它是否有任何优势呢? - Nick Tomlinto_string
实现 https://doc.rust-lang.org/src/collections/up/src/libcollections/string.rs.html#1768-1774 - JDemler