Смущает "временная стоимость упала здесь, пока еще заимствована"
Я смущен этим сообщением об ошибке о типе &str
:
let a = &String::from("abcdefg"); // ok!
let a = String::from("abcdefg").as_str(); // compile error
Ошибка:
let a = String::from("abcdefg").as_str();
^^^^^^^^^^^^^^^^^^^^^^^ - temporary value dropped here while still borrowed
temporary value does not live long enough
Я понимаю, что во второй строке String
объект является временным объектом, он падает, когда линия заканчивается. Но почему первая строка работает нормально?