Comments 15
Вот из-за такого гуано Хабр и умрет. Зачем криво пересказывать Раст бук, если есть Раст бук, где все максимально понятно? (Ради рекламы своих сраных курсов) Откуда у статьи столько плюсов?
То что умерло, умереть не может))
Откуда у статьи столько плюсов?
Чтобы зайти в комменты и найти линку на https://doc.rust-lang.ru/book/title-page.html
Какие IDE хорошо поддерживают Rust?
Сам собираюсь потыкать в Rust, планировал использовать превью версию RustRover от JetBrains, также есть плагин для Rust-разработки для IntelliJ, однако, по заявлению JetBrains, он теперь deprecated и не будет поддерживаться в пользу новой IDE. P.S. Не реклама
JetBrains недавно выкатили RustRover, ну и вроде всё
VS Code, rustrover
Любая IDE поддерживающая работу с LSP. VS Code, Sublime Text, Vim/Neovim/Helix, Lapce, кучка JetBrainовских - CLion и анонсированный Rust Rover и что-то ещё там поддерживало как плагин.
А так сюда ходи https://areweideyet.com/
В Codelite заявлена "Full Rust Support", но мне трудно оценить насколько эта full support хороша. Я только немного "потыкался", и могу сказать, что автодополнение и отладка работают. Под Windows инструкция рекомендует использовать MSYS2
, но это не обязательно. Можно установить rust-analyzer
с помощью rustup
и добавить путь в %PATH%
или непосредственно в IDE указать.
Неизменяемая переменная
Хорошо звучит
Т.е. если раньше неизменяемые переменные писали const, теперь более удобно при объявлении наоборот указывать явно изменяемость через mut.
А профит какой?
Сразу видно в по сигнатуре функции, что значение возвращается через аргумент или иным способом функция модифицирует передаваемое значение. Плюс компилятору должно быть больше информации для оптимизаций.
let mut buf_rx: [MaybeUninit<u8>; 2048] = …;
let size = socket.recv(&mut buf_rx).unwrap();
const
уехало в компайл-тайм (в rust и в dart), и указывает на вычисляемые на этапе компиляции значения. То есть это даже не переменные, они просто инлайнятся в местах использования.
Профит от неизменяемости по-умолчанию в дизайне языка - чаще приходится работать с неизменяемыми данными. Если нужна мутабельность - приходится явно обращать внимание (и иногда думать, нужна ли тут на самом деле мутабельность)
Раст делает большой упор на безопасность. Согласно растбуку причин много, одна из самых простых - чтоб не дай бог не мутировало ничего, что мутировать вообще не должно. А так тебе компилятор сразу выкинит ошибку, что у тебя проблемка с мутацией данных. По большому счету тот же принцип, что и в плюсах, мол всё что не будем менять - кидаем в константу, только наоборот
Основы Rust: синтаксис и структуры данных