我是Rust的初学者,我想将Option格式化为小写。
我需要这样做,因为我正试图通过拍击在CLI mod中获取一些字符串参数。我想要一个简单的“匹配”来获得正确的值,即使用户写的很奇怪。
这是我当前的代码:
let format : String = match matches.value_of("format") {
Some("html") => String::from("html"),
Some("bbcode") => String::from("bbcode"),
_ => String::from("markdown"),
};
我不想做出像这样的可怕事情:
let format : String = match matches.value_of("format") {
Some("html") | Some("HTML") | Some("Html") | ...etc => String::from("html"),
Some("bbcode") | Some("BBCODE") | Some("BBcode") | ...etc => String::from("bbcode"),
_ => String::from("markdown"),
};
我尝试天真地做出类似的事情:
let format : String = match matches.value_of("format").unwrap().to_lowercase() {
Some("html") => String::from("html"), // don't work because my match is not an Option now but a String
"html" => String::from("html"), // nop, this is a "String" not an "str" =_=
String::from("html") => String::from("html"), // nop I cannot
"html".to_string() => String::from("html"), // nop I cannot too
};
好吧,我是新手,但是很难对rust中的字符串进行基本切换了?