В Rust используется строгая статическая типизация: типы всех переменных и функций известны на этапе компиляции и не могут изменяться во время выполнения. Это означает, что компилятор заранее выявит большинство ошибок, связанных с неправильным использованием типов, до запуска программы.
Статическая типизация обеспечивает:
Пример:
let x: i32 = 5; let y: f64 = 2.0; let z = x as f64 + y; // корректно: x преобразуется в f64 // let w = x + y; // ошибка компиляции: разные типы
Как в Rust реализовать функцию, которая работает и с числами, и со строками? Достаточно ли использования типа dyn Any?
Ответ:
Использование dyn Any позволяет выполнить downcast типов, но для универсальных функций в Rust предпочтительно использовать дженерики и трейты с ограничениями. Например:
use std::fmt::Display; fn print_value<T: Display>(val: T) { println!("{}", val); }
История
История
#[derive(Serialize)]), что задержало релиз на сутки.История
В одном из финтех-проектов программисты подумали, что Rust автоматически приводит типы в аритметических выражениях, как это делают Python или JavaScript. В результате на этапе компиляции высыпались сотни ошибок, и пришлось переделывать часть кода, явно указывая преобразования типов.