Rust - Trình quản lý gói

Cargo là người quản lý gói hàng cho RUST. Điều này hoạt động giống như một công cụ và quản lý các dự án Rust.

Một số lệnh vận chuyển hàng hóa thường được sử dụng được liệt kê trong bảng dưới đây:

Sr.No Lệnh & Mô tả
1

cargo build

Biên dịch dự án hiện tại.

2

cargo check

Phân tích dự án hiện tại và báo cáo lỗi, nhưng không tạo tệp đối tượng.

3

cargo run

Xây dựng và thực thi src / main.rs.

4

cargo clean

Xóa thư mục đích.

5

cargo update

Cập nhật các phần phụ thuộc được liệt kê trong Cargo.lock.

6

cargo new

Tạo một dự án vận chuyển hàng hóa mới.

Cargo giúp tải xuống thư viện của bên thứ ba. Do đó, nó hoạt động giống như một trình quản lý gói. Bạn cũng có thể xây dựng các thư viện của riêng mình. Cargo được cài đặt theo mặc định khi bạn cài đặt Rust.

Để tạo một dự án hàng hóa mới, chúng ta có thể sử dụng các lệnh dưới đây.

Tạo thùng nhị phân

cargo new project_name --bin

Tạo thùng thư viện

cargo new project_name --lib

Để kiểm tra phiên bản hiện tại của hàng hóa, hãy thực hiện lệnh sau:

cargo --version

Hình minh họa - Tạo một dự án Hàng hóa nhị phân

Trò chơi tạo ra một số ngẫu nhiên và nhắc người dùng đoán số đó.

Bước 1 - Tạo một thư mục dự án

Mở thiết bị đầu cuối và nhập lệnh sau đây , trò chơi đoán-game-ứng dụng mới --bin .

Điều này sẽ tạo ra cấu trúc thư mục sau.

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

Lệnh mới về hàng hóa được sử dụng để tạo thùng. Các --bin cờ chỉ ra rằng thùng được tạo ra là một thùng nhị phân. Các thùng công cộng được lưu trữ trong một kho lưu trữ trung tâm có tên là crates.iohttps://crates.io/.

Bước 2 - Bao gồm các tham chiếu đến các thư viện bên ngoài

Ví dụ này cần tạo một số ngẫu nhiên. Vì thư viện tiêu chuẩn nội bộ không cung cấp logic tạo số ngẫu nhiên, chúng ta cần xem xét các thư viện hoặc thùng bên ngoài. Hãy để chúng tôi sử dụngrandthùng có sẵn tại trang web crates.io crates.io

Các https://crates.io/crates/randlà một thư viện gỉ để tạo số ngẫu nhiên. Rand cung cấp các tiện ích để tạo số ngẫu nhiên, chuyển đổi chúng thành các kiểu và phân phối hữu ích, và một số thuật toán liên quan đến ngẫu nhiên.

Biểu đồ sau đây hiển thị trang web crate.io và kết quả tìm kiếm cho thùng rand.

Sao chép phiên bản của thùng rand vào tệp Cargo.toml rand = "0.5.5" .

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

[dependencies]
rand = "0.5.5"

Bước 3: Biên dịch dự án

Điều hướng đến thư mục dự án. Thực hiện lệnhcargo build trên cửa sổ đầu cuối -

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

Thùng rand và tất cả các phụ thuộc bắc cầu (phụ thuộc bên trong của rand) sẽ được tự động tải xuống.

Bước 4 - Hiểu Logic Kinh doanh

Bây giờ chúng ta hãy xem cách logic nghiệp vụ hoạt động cho trò chơi đoán số -

  • Trò chơi ban đầu tạo ra một số ngẫu nhiên.

  • Người dùng được yêu cầu nhập đầu vào và đoán số.

  • Nếu số nhỏ hơn số đã tạo, thông báo “Quá thấp” sẽ được in.

  • Nếu số lớn hơn số đã tạo, thông báo “Quá cao” sẽ được in.

  • Nếu người dùng nhập số được tạo bởi chương trình, trò chơi sẽ thoát.

Bước 5 - Chỉnh sửa tệp main.rs

Thêm logic nghiệp vụ vào tệp 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;
      }
   }
}

Bước 6 - Biên dịch và Thực thi Dự án

Thực hiện lệnh chạy hàng hóa trên thiết bị đầu cuối. Đảm bảo rằng thiết bị đầu cuối trỏ đến thư mục Dự án.

Welcome to no guessing game
correct value is 97
Input guess
20
Too low
Input guess
100
Too high
Input guess
97
You got it ..