Но этот же огромный архив информации показывает / подсказывает много любопытных вещей:
- многие проекты там по дате обновления: "7 days ago" ... и подобное, по разному...
- и они
не компилируются из-за синтаксических ошибок
- это происходит в последней стабильной версии Rust:
Код: Выделить всё
[olej@dell rust]$ rustc -V
rustc 1.23.0 (766bd11c8 2018-01-01)
- а это значит, что конкретный пример из архива: а). либо не поспевает обновляться за версиями Rust, б). либо пример отрабатывается на последних нестабильных,
девелоперских версиях Rust
- и в том и в другом случае это
напоминает о том, что реализации Rust ещё очень молодые (< 3-х лет), и
обещанная совместимость снизу вверх пока ещё
сильно преувеличена
И ещё, изучение архива (даже самое поверхностное) даёт очень интересные вещи (или предположения ... которые ещё нужно подтверждать):
1. Похоже, что эти примеры отрабатывались в Windows реализациях? ... тогда это может говорить о некоторых несовместимостях из-за платформы (хотя обещают...)
2. В дефаултной установке Rust нет некоторых библиотечных пакетов?
Такие вот объявления, которые порождают ошибки:
Или так вот, когда код абсолютно понятен, но чего-то не хватает:
Код: Выделить всё
extern crate num;
use num::complex::Complex;
fn main() {
let a = Complex::new(-4.0f32, 5.0);
let b = Complex::new(1.0f32, 1.0);
println!("a = {}", a);
println!("b = {}", b);
println!("a + b = {}", a + b);
println!("a * b = {}", a * b);
println!("1 / a = {}", Complex::new(1.0f32, 0.0) / a);
println!("-a = {}", -a);
println!("conj a = {}", a.conj());
}
Как добавлять эти вот crate-ы я пока не понимаю.
3. Такие вот ... "директивы" (
) 1-й строкой файла main.rs (это очень напоминает директиву использования языка
во всех скриптовых языках):
Что порождает ошибку:
Код: Выделить всё
[olej@dell rust]$ rustc -O ex6.rs
error[E0554]: #![feature] may not be used on the stable release channel
--> ex6.rs:1:1
|
1 | #![feature(slice_patterns)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error
По тексту сообщения - это не применимо в стабильной версии языка, а что-то относящееся только к девелоперской версии.