Учебники

Rust — менеджер пакетов

Cargo — менеджер пакетов для RUST. Это действует как инструмент и управляет проектами Rust.

Некоторые часто используемые грузовые команды перечислены в таблице ниже —

Sr.No Команда и описание
1

сборка груза

Компилирует текущий проект.

2

проверка груза

Анализирует текущий проект и сообщает об ошибках, но не создает объектные файлы.

3

грузовой пробег

Сборка и выполнение src / main.rs.

4

чистый груз

Удаляет целевой каталог.

5

обновление груза

Обновляет зависимости, перечисленные в Cargo.lock.

6

новый груз

Создает новый грузовой проект.

сборка груза

Компилирует текущий проект.

проверка груза

Анализирует текущий проект и сообщает об ошибках, но не создает объектные файлы.

грузовой пробег

Сборка и выполнение src / main.rs.

чистый груз

Удаляет целевой каталог.

обновление груза

Обновляет зависимости, перечисленные в Cargo.lock.

новый груз

Создает новый грузовой проект.

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

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

Создать бинарный ящик

cargo new project_name --bin

Создать библиотечный ящик

cargo new project_name --lib

Чтобы проверить текущую версию груза, выполните следующую команду —

cargo --version

Иллюстрация — Создание проекта Binary Cargo

Игра генерирует случайное число и предлагает пользователю угадать число.

Шаг 1 — Создать папку проекта

Откройте терминал и введите следующую команду cargo new Угадать-игра-приложение —bin .

Это создаст следующую структуру папок.

guess-game-app/
   -->Cargo.toml
   -->src/
      main.rs

Команда « Новый груз» используется для создания ящика. Флаг —bin указывает, что создаваемый ящик является двоичным. Общедоступные ящики хранятся в центральном хранилище, которое называется crates.io https://crates.io/ .

Шаг 2 — Включите ссылки на внешние библиотеки

Этот пример должен генерировать случайное число. Поскольку внутренняя стандартная библиотека не обеспечивает логику генерации случайных чисел, нам нужно взглянуть на внешние библиотеки или ящики. Давайте использовать rand crate, который доступен на сайте crates.io crates.io

Https://crates.io/crates/rand — это библиотека ржавчины для генерации случайных чисел. Rand предоставляет утилиты для генерации случайных чисел, преобразования их в полезные типы и распределения и некоторые алгоритмы, связанные со случайностью.

Следующая диаграмма показывает веб-сайт crate.io и результаты поиска для rand crate.

внешние библиотеки

Скопируйте версию rand crate в файл Cargo.toml rand = «0.5.5» .

[package]
name = "guess-game-app"
version = "0.1.0"
authors = ["Mohtashim"]

[dependencies]
rand = "0.5.5"

Шаг 3: Скомпилируйте проект

Перейдите в папку проекта. Выполните команду «Сборка груза» в окне терминала —

Updating registry `https://github.com/rust-lang/crates.io-index`
Downloading rand v0.5.5
Downloading rand_core v0.2.2
Downloading winapi v0.3.6
Downloading rand_core v0.3.0
   Compiling winapi v0.3.6
   Compiling rand_core v0.3.0
   Compiling rand_core v0.2.2
   Compiling rand v0.5.5
   Compiling guess-game-app v0.1.0 
   (file:///E:/RustWorks/RustRepo/Code_Snippets/cargo-projects/guess-game-app)
   Finished dev [unoptimized + debuginfo] target(s) in 1m 07s

Ящик rand и все переходные зависимости (внутренние зависимости rand) будут автоматически загружены.

Шаг 4 — Понимание бизнес-логики

Давайте теперь посмотрим, как работает бизнес-логика для игры в угадывание чисел —

  • Игра изначально генерирует случайное число.

  • Пользователю предлагается ввести данные и угадать число.

  • Если число меньше сгенерированного числа, печатается сообщение «Слишком низкое».

  • Если число больше сгенерированного числа, печатается сообщение «Слишком высокое».

  • Если пользователь вводит число, сгенерированное программой, игра завершается.

Игра изначально генерирует случайное число.

Пользователю предлагается ввести данные и угадать число.

Если число меньше сгенерированного числа, печатается сообщение «Слишком низкое».

Если число больше сгенерированного числа, печатается сообщение «Слишком высокое».

Если пользователь вводит число, сгенерированное программой, игра завершается.

Шаг 5 — Редактируйте файл main.rs

Добавьте бизнес-логику в файл main.rs.

use std::io;
extern crate rand; 
//importing external crate
use rand::random;
fn get_guess() -> u8 {
   loop {
      println!("Input guess") ;
      let mut guess = String::new();
      io::stdin().read_line(&mut guess)
         .expect("could not read from stdin");
      match guess.trim().parse::<u8>(){ //remember to trim input to avoid enter spaces
         Ok(v) => return v,
         Err(e) => println!("could not understand input {}",e)
      }
   }
}
fn handle_guess(guess:u8,correct:u8)-> bool {
   if guess < correct {
      println!("Too low");
      false

   } else if guess> correct {
      println!("Too high");
      false
   } else {
      println!("You go it ..");
      true
   }
}
fn main() {
   println!("Welcome to no guessing game");

   let correct:u8 = random();
   println!("correct value is {}",correct);
   loop {
      let guess = get_guess();
      if handle_guess(guess,correct){
         break;
      }
   }
}

Шаг 6 — Компиляция и выполнение проекта

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