给出数组:
static STRS_UPPER: [&'static str; 3] = ["FOO", "BAR", "BAZ"];
将上述数组的映射表示形式(例如,使所有字符串都变为小写)传递给具有签名的函数的简洁方式是什么:
fn print_str_slice(slice: &[&str]);
以上类型参数是固定的。我无法更改print_str_slice
的签名或STRS_UPPER
的类型。
我目前正在做什么:
let strings_lower = STRS_UPPER.iter()
.map(|s| s.to_string().to_ascii_lowercase())
.collect::<Vec<_>>();
print_str_slice(strings_lower.iter()
.map(AsRef::as_ref)
.collect::<Vec<_>>()
.as_slice()
);
是否可以以更简洁的方式完成此操作,也许不需要中介向量strings_lower
?