Комментарии 13
Скорее "Rust с 0 до 0% для JavaScript разработчиков".
Кстати, книга есть и на русском: https://doc.rust-lang.ru/book/
Статья сводится к тому, что JS и Rust не похожи, в расте много принципиально других вещей, поэтому почитайте книгу )
println!("{:?}", my_variable);
Можно вот так: println!("{my_variable:?}");
Вам надо будет добавить их вручную (вместо использования такой команды, как yarn add)
Можно использовать cargo add
(установив cargo-edit
).
точка с запятой (;) не обязательна в последней строке функции. В данном случае это сокращение для возврата этой строки
"Возврат строки" - как-то странно звучит. Точка с запятой меняет поведение. Она ставится после инструкций (statement) и не ставится после выражений (expression). Выражения возвращают значение, а инструкции - нет. "abc"
- выражение, let a = "abc";
- инструкция. Поэтому, "abc"
в расте равноценно return "abc"
. Точка с запятой подавляет возвращение значения, поэтому если написать "abc";
, то значение выражения "abc"
возвращено не будет.
Кстати, получается, что точка с запятой после return является исключением, ведь она не мешает возвращению значения.
Кстати, получается, что точка с запятой после return является исключением, ведь она не мешает возвращению значения.
Исключением тут является не точка с запятой после return, а сам оператор return (кстати, он не один такой). Проще всего это увидеть на следующем примере:
fn foo() -> i32 {
let bar = {
return 5;
};
}
Здесь оператор return возвращает значение из функции foo, но это ничуть не мешает переменной bar принять тип ()
Не совсем:
Тип выражения { return 5; }
-- !
(он же never-type).
Другое дело, что never-type, формально, приводим к любому типу и, действительно,
fn foo() -> i32 {
let bar: () = { return 1; };
}
также скомпилируется.
Наверно самый бесполезный (даже вредный) способ учить Rust )
JavaScript-разработчику его знания не помогут практически ничем в освоении Rust-а.
Ну нет. Преувеличиваете. Если знаешь один язык, то следующие изучаются проще.
Другое дело, что статья не помогает решать трудности возникающие с переходом. Думаю, что привыкший скриптухе сразу столкнется с вопросами типа как положить в вектор объекты разных типов и работать с ними, как замыкание положить в объект, как добавить поле в объект после создания... ну подобное, что может заставить переписать первые программы несколько раз чтобы они лишь заработали.
Вот теперь я перестал понимать Rust. Вроде, начали проклёвываться зёрна, и я даже чуть-чуть освоился с арифметрикой на трейтах, но вот после вашего введения Rust выглядит странным, загадочным и непонятным.
Это все банальщина, давай про заимствования и времена их жизни.
Rust с 0 до 80% для JavaScript разработчиков