Смущает "временная стоимость упала здесь, пока еще заимствована"

Я смущен этим сообщением об ошибке о типе &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 объект является временным объектом, он падает, когда линия заканчивается. Но почему первая строка работает нормально?

0 ответов

Другие вопросы по тегам