Rust-package-manager

提供:Dev Guides
移動先:案内検索

Rust-パッケージマネージャー

CargoはRUSTのパッケージマネージャーです。 これはツールのように機能し、Rustプロジェクトを管理します。

いくつかの一般的に使用される貨物コマンドは、以下の表に記載されています-

Sr.No Command & Description
1

cargo build

現在のプロジェクトをコンパイルします。

2

cargo check

現在のプロジェクトを分析し、エラーを報告しますが、オブジェクトファイルをビルドしません。

3

cargo run

src/main.rsをビルドして実行します。

4

cargo clean

ターゲットディレクトリを削除します。

5

cargo update

Cargo.lockにリストされている依存関係を更新します。

6

cargo new

新しい貨物プロジェクトを作成します。

貨物は、サードパーティのライブラリをダウンロードするのに役立ちます。 したがって、パッケージマネージャーのように機能します。 独自のライブラリを構築することもできます。 Rustをインストールすると、デフォルトで貨物がインストールされます。

新しい貨物プロジェクトを作成するには、以下のコマンドを使用できます。

バイナリクレートを作成する

cargo new project_name --bin

ライブラリクレートを作成する

cargo new project_name --lib

貨物の現在のバージョンを確認するには、次のコマンドを実行します-

cargo --version

図-バイナリ貨物プロジェクトを作成する

ゲームは乱数を生成し、ユーザーに数字を推測するように促します。

手順1-プロジェクトフォルダーを作成する

ターミナルを開き、次のコマンドを入力します_cargo new guess-game-app --bin_。

これにより、次のフォルダー構造が作成されます。

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

_cargo new_コマンドは、クレートを作成するために使用されます。 _-- bin_フラグは、作成中のクレートがバイナリクレートであることを示します。 パブリッククレートはcrates.io [[1]]

ステップ2-外部ライブラリへの参照を含める

この例では、乱数を生成する必要があります。 内部標準ライブラリは乱数生成ロジックを提供しないため、外部ライブラリまたはクレートを調べる必要があります。 crates.ioのWebサイトhttps://crates.io/[crates.io]で入手できる rand クレートを使用しましょう

[[2]] Randは、乱数を生成し、それらを有用なタイプと分布に変換するユーティリティ、およびいくつかの乱数関連アルゴリズムを提供します。

次の図は、crate.ioのWebサイトと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:プロジェクトをコンパイルする

プロジェクトフォルダーに移動します。 端末ウィンドウでコマンド cargo build を実行します-

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-ビジネスロジックを理解する

数字当てゲームでビジネスロジックがどのように機能するかを見てみましょう-

  • ゲームは最初に乱数を生成します。
  • ユーザーは、入力を入力して数字を推測するよう求められます。
  • 数値が生成された数値よりも小さい場合、「Too low」というメッセージが出力されます。
  • 数値が生成された数値よりも大きい場合、「Too high」というメッセージが出力されます。
  • ユーザーがプログラムによって生成された番号を入力すると、ゲームは終了します。

ステップ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-プロジェクトのコンパイルと実行

ターミナルで_cargo run_コマンドを実行します。 ターミナルがプロジェクトディレクトリを指していることを確認します。

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 ..