Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Отличный разбор, только разницы между &’static и: ‘static не понял. Первое является подмножеством второго, правильно? То-есть частный случай, когда который работает только для случаев аля &’static str?
Именно. String вполне себе 'static и при этом не содержит времён жизни.
T: 'static означает, что тип T если содержит ссылки, то только статические.
&'a T можно представить как:
struct Ref<'a, T: ?Sized> {
reference: &'a T,
}То есть для случая Ref<'static, T>, эта структура не будет содержать нестатических ссылок, а значит она будет удовлетворять ограничению Ref<'static, T>: 'static.
Хорошая статья. Жаль только тема ограничений лайфтаймов не раскрыта: "'a: 'b", "for<'a>" и т.п.
Распространённые заблуждения о временах жизни в Rust