Расширенный пример вывода типов в Rust

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом лабораторном задании подчеркивается возможность движка вывода типов определить тип переменной на основе ее использования и присвоения значения, что демонстрируется в продвинутом примере на языке программирования Rust.

Примечание: Если в лабораторном задании не указано имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать main.rs, скомпилировать и запустить его с помощью rustc main.rs &&./main.

Вывод типов

Движок вывода типов довольно умный. Он делает больше, чем просто смотреть на тип выражения значения во время инициализации. Он также смотрит, как переменная используется впоследствии, чтобы вывести ее тип. Вот продвинутый пример вывода типов:

fn main() {
    // В силу аннотации компилятор знает, что `elem` имеет тип u8.
    let elem = 5u8;

    // Создаем пустой вектор (растяжимый массив).
    let mut vec = Vec::new();
    // На этом этапе компилятор не знает точного типа `vec`, он
    // просто знает, что это вектор чего-то (`Vec<_>`).

    // Вставляем `elem` в вектор.
    vec.push(elem);
    // Ага! Теперь компилятор знает, что `vec` - это вектор `u8` (`Vec<u8>`)
    // TODO ^ Попробуйте закомментировать строку `vec.push(elem)`

    println!("{:?}", vec);
}

Не нужно задавать аннотации типов переменным, компилятор доволен, и программист тоже!

Резюме

Поздравляем! Вы завершили лабораторную работу "Вывод типов". Вы можете практиковаться в других лабораторных работах в LabEx, чтобы улучшить свои навыки.