Как стать автором
Обновить

Комментарии 15

Вот из-за такого гуано Хабр и умрет. Зачем криво пересказывать Раст бук, если есть Раст бук, где все максимально понятно? (Ради рекламы своих сраных курсов) Откуда у статьи столько плюсов?

То что умерло, умереть не может))

Откуда у статьи столько плюсов?

Чтобы зайти в комменты и найти линку на https://doc.rust-lang.ru/book/title-page.html

Какие IDE хорошо поддерживают Rust?

Сам собираюсь потыкать в Rust, планировал использовать превью версию RustRover от JetBrains, также есть плагин для Rust-разработки для IntelliJ, однако, по заявлению JetBrains, он теперь deprecated и не будет поддерживаться в пользу новой IDE. P.S. Не реклама

Мне vscode + rust analyzer больше понравилась. Rust Rover уступает им, как мне кажется

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), и указывает на вычисляемые на этапе компиляции значения. То есть это даже не переменные, они просто инлайнятся в местах использования.

Профит от неизменяемости по-умолчанию в дизайне языка - чаще приходится работать с неизменяемыми данными. Если нужна мутабельность - приходится явно обращать внимание (и иногда думать, нужна ли тут на самом деле мутабельность)

Раст делает большой упор на безопасность. Согласно растбуку причин много, одна из самых простых - чтоб не дай бог не мутировало ничего, что мутировать вообще не должно. А так тебе компилятор сразу выкинит ошибку, что у тебя проблемка с мутацией данных. По большому счету тот же принцип, что и в плюсах, мол всё что не будем менять - кидаем в константу, только наоборот

Зарегистрируйтесь на Хабре, чтобы оставить комментарий