Главные новинки:
- Асинхронные замыкания (async closures): теперь можно писать
async || {}, что решает проблемы с захватом значений из контекста. Также добавлены трейты AsyncFn, AsyncFnMut и AsyncFnOnce.- Новый атрибут
#[diagnostic::do_not_recommend] для скрытия нежелательных реализаций трейтов в диагностике компилятора.- FromIterator и Extend теперь работают с кортежами от 1 до 12 элементов - можно создавать сразу несколько коллекций одним вызовом collect().
В Edition 2024 внесли множество изменений, улучшающих безопасность и эргономику:
- Блоки extern теперь требуют ключевое слово unsafe
- Изменены правила временной области для if let и последних выражений в блоках
- Улучшена работа с #![deny(unsafe_op_in_unsafe_fn)]
- Зарезервированы ключевые слова gen и синтаксис защищенных строк #"foo"#
Чтобы обновиться, просто выполните
rustup update stable. Для перехода на Edition 2024 в большинстве случаев поможет cargo fix.#rust #programming #update #edition2024