Представьте тип-обёртку без реального поля-ссылки: как PhantomData<&'a T> заставляет Rust учитывать связь типа с временем жизни 'a?
База Hintsage
Времена жизни
Lifetime annotations и связи времени жизни ссылок.
Практика
Вопросы: Времена жизни
Почему Rust применяет правила elision к сигнатурам функций, но не подставляет время жизни автоматически в обычный псевдоним типа?
Верно ли, что Rust создаёт отдельную исполняемую сущность для каждого значения времени жизни в обобщённой сигнатуре?
При объявлении функции, возвращающей ссылку, почему Rust не может вывести её время жизни, если функция не получает ссылок?
В типе со ссылкой на ссылку зачем внешней и внутренней ссылкам нужны разные времена жизни?
В чём причина инвариантности изменяемой ссылки по типу значения, хотя её время жизни можно безопасно укоротить?
Зачем при объявлении обобщённого ассоциированного типа Rust требует связать его параметр времени жизни с Self через where Self: 'a?
Разберите, почему явная аннотация времени жизни у локальной ссылочной переменной иногда приводит к ошибке, которой не возникает при выводе времени жизни.
Почему реализация Drop может усилить требования к времени жизни параметра типа, даже если метод drop фактически не читает ссылку?
Разберите ограничение: почему обычный Iterator::Item не может выразить время жизни элемента, зависящее от конкретного заимствования итератора?
Разберите ситуацию: почему будущее, созданное асинхронной функцией со ссылкой, не может безопасно пережить эту ссылку?
Сравнение: чем отличается время жизни, заданное параметром самого трейта, от ограничения времени жизни объектного типа трейта?
При реализации метода трейта можно ли заменить его параметр времени жизни на более конкретный срок, и какое требование это нарушает?
Что означает имя 'a в двух разных сигнатурах Rust: это одна глобальная длительность или локальный параметр каждой сигнатуры?
Почему при подстановке типов функций время жизни аргумента-ссылки проверяется контравариантно?
Разберите ситуацию: почему функция, возвращающая замыкание, должна связывать время жизни замыкания с захваченной ссылкой?
В сценарии с Cow<'a, str> почему значение не может пережить исходную строку в borrowed-варианте, но может после into_owned?
В какой момент Rust прекращает считать неизменяемую ссылку активным заимствованием внутри блока?
При автоматическом выводе времени жизни в методе с получателем-ссылкой какое входное время жизни связывается с возвращаемой ссылкой, если у метода есть другие ссылочные параметры?
Влияет ли аннотация времени жизни на представление ссылки в памяти?
Показано 21–40 из 50