Рассмотрим следующий примерошибка «тип этого значения должен быть известен в этом контексте» в сопоставлении с образцом
fn main() {
f("hello", true);
}
fn f(str: &str, sen: bool) {
let s: &str = match sen {
false => str,
true => str.chars().map(|x| x.to_lowercase()).collect().as_slice()
};
println!("{}", s);
}
Я получаю эту ошибку
error: the type of this value must be known in this conntext
true => str.chars().map(|x| x.to_lowercase()).collect().as_slice()
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Я немного запутался, разве компилятор не знает, что тип str
равен &str
из определения функции? Что мне здесь не хватает?
Спасибо. В результате я использовал временные переменные для хранения 'String' и привязывал s к' temp_var.as_slice() '. Не уверен, есть ли лучший способ. –