Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Лично мне очень помог интерактивный туториал Rust by Example.
&str дело не доходит и он даже не упоминается. И тут никак не объясняется, почему в одном месте (println!) мы используем просто строковый литерал, а в других местах мы делаем String::from. Лучше было бы тогда, как мне кажется, завести структуру с каким-нибудь u8 полем и ее мучать, а то String/&str — это известное больное место для знакомящихся с языком.&String в clippy даже предупреждение есть: https://github.com/Manishearth/rust-clippy/wiki#ptr_argпочему не точка, ведь это 2 символа против одного;
но все равно даже объявление функции выглядит, как вы уже сказали, «замусоренным»
auto перед именем функции.let), так что не надо вводить лишнюю сущность в грамматику.struct S { a: u8, b: u8, c: u8 }
fn f(S{c, ..}: S) {
println!("c={}", c);
}let a = 10i32;
let b: i32 = 10;
let (c, d) = (10, 20);
let (e, f): (i32, i32) = (10, 20);auto. Первые два случая выглядят более-менее нормально:auto a = 10;
int b = 10;let вполне естественно используется в конструкции if let. Не уверен, что придать такой же смысл auto удалось бы. В итоге придётся вводить дополнительный синтаксис.Интересно насколько возможно полуавтоматическое портирование с java, или C.
Cell или RefCell скорее. Но, в любом случае, в статье же о работе по умолчанию говорится.Скорее так: если вы все делаете правильно, раст гарантирует что в любой момент времени у вас только один владелец который может менять данные.
а вот есть мнение, что хорошее понимание причин позволяет лучше понимать и конечный результат.
Просто на мой взгляд, немного странно на примере Hello World разбирать особенности языка и его философию.
Rust через его основополагающие принципы