Почему реализация Drop может усилить требования к времени жизни параметра типа, даже если метод drop фактически не читает ссылку?
База Hintsage
Программирование Rust
Язык Rust и безопасное системное программирование.
Темы раздела
Выберите подраздел
- 0 вопросов
Общие вопросы
Смешанные вопросы по Rust.
Открыть раздел - 49 вопросов
Rust Core
Типы, pattern matching, modules и базовая семантика.
Открыть раздел - 50 вопросов
Владение и заимствование
Ownership, borrowing, moves и правила безопасной памяти.
Открыть раздел - 50 вопросов
Времена жизни
Lifetime annotations и связи времени жизни ссылок.
Открыть раздел - 49 вопросов
Traits и generics
Traits, bounds, generics, associated types и dispatch.
Открыть раздел - 50 вопросов
Конкурентность и async
Send/Sync, threads, channels, futures и async runtime.
Открыть раздел - 50 вопросов
Обработка ошибок
Result, Option, оператор ?, panic и проектирование ошибок.
Открыть раздел - 50 вопросов
Unsafe и память
Unsafe Rust, raw pointers, FFI и инварианты безопасности.
Открыть раздел
Практика
Вопросы: Программирование Rust
Разберите, почему явная аннотация времени жизни у локальной ссылочной переменной иногда приводит к ошибке, которой не возникает при выводе времени жизни.
Зачем при объявлении обобщённого ассоциированного типа Rust требует связать его параметр времени жизни с Self через where Self: 'a?
В чём причина инвариантности изменяемой ссылки по типу значения, хотя её время жизни можно безопасно укоротить?
В типе со ссылкой на ссылку зачем внешней и внутренней ссылкам нужны разные времена жизни?
При объявлении функции, возвращающей ссылку, почему Rust не может вывести её время жизни, если функция не получает ссылок?
Верно ли, что Rust создаёт отдельную исполняемую сущность для каждого значения времени жизни в обобщённой сигнатуре?
Почему Rust применяет правила elision к сигнатурам функций, но не подставляет время жизни автоматически в обычный псевдоним типа?
Представьте тип-обёртку без реального поля-ссылки: как PhantomData<&'a T> заставляет Rust учитывать связь типа с временем жизни 'a?
Представьте, что изменяемую ссылку временно передали с более коротким временем жизни: почему исходная ссылка остаётся недоступной до окончания этого заимствования?
Почему аннотация времени жизни не делает самоссылочную структуру безопасной для перемещения?
Как компилятор трактует явный заполнитель времени жизни '_ в типе ссылки?
Разберите различие между временем жизни, указанным в типе ссылки, и фактической длительностью заимствования, которую выбирает компилятор.
Сравните смысл времени жизни, объявленного у реализации типа, со временем жизни, объявленного отдельно у метода: когда каждое из них выбирается?
Как трактовать два разных параметра времени жизни в типе результата функции, если оба связаны с входными ссылками?
Что меняется при использовании псевдонима типа со ссылкой: скрывает ли он требования к её времени жизни?
Сравнение: почему ссылка с более длинным временем жизни может использоваться там, где ожидается более короткое, но не наоборот?
При вызове функции с параметром времени жизни кто определяет конкретную длительность 'a — автор функции или компилятор на стороне вызывающего кода?
При чтении типа &'a mut T что именно ограничено временем жизни 'a?
Разбор последствий: что именно гарантирует требование, чтобы обобщённый тип не содержал ссылок короче заданного времени жизни, и чего оно не гарантирует?
Показано 221–240 из 348