кода? (https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8067bd9ca0f02bfe4a806ee71d15edfb) :
fn test(u: &str) -> i32 {
4
}
fn main() {
let mut buf = [0; 512];
let request = &String::from_utf8_lossy(&buf);
test(request);
}
from_utf8_lossy возарвщвет Cow<str>, мы берём ссылку на Cow и передаём в test. Но почему-то если ссылку не брать, то работать не будет. Почему условно дважды Rust может сделать дереференс, чтобы соответстовать типу test, а единожды — нет?
Такие правила: rustc может сделать сколько угодно автореференсов и максимум один автодереференс
Обсуждают сегодня