Rust - Package Manager

Mickey·2022년 1월 15일
0

Rust

목록 보기
26/32
post-thumbnail
post-custom-banner

https://www.tutorialspoint.com/rust/rust_package_manager.htm

Cargo는 RUST의 패키지 관리자
Rust 프로젝트를 관리

Sr.No.CommandDescription
1cargo build현재 프로젝트 빌드
2cargo check프로젝트를 분석하고 오류 보고, 빌드 하지 않음
3cargo run프로젝트를 빌드하고 실행
4cargo clear빌드 타겟 디렉토리 클리어
5cargo updateCargo.lock에 목록화된 종속성 업데이트
6cargo new새로운 프로젝트 생성

Cargo는 3rd party 라이브러리 다운로드 가능
자신만의 라이브러리를 구축 할 수 있음
Rust 설치시 Cargo는 기본적으로 설치

Create a binary crate

cargo new project_name --bin

Create a library crate

cargo new project_name --lib

Version Check

cargo new project_name --lib

Create a Binary Cargo project

step 1 - Create a project folder

Step 2 - Include references to external libraries

내부 표준 라이브러리는 난수 생성 로직을 제공하지 않음
crates.io 웹사이트에서 검색 가능
crates.io
rand

Cargo.toml의 [dependency]에 rand = "0.8.4" 추가

Step 3: Compile the Project

프로젝트 폴더에서 cargo build 명령으로 프로젝트 빌드

Step 4 - Create the Business Logic

  • 게임은 처음에 난수를 생성
  • 사용자는 입력을 입력하고 숫자를 추측
  • 입력한 숫자가 생성된 숫자보다 작으면 "Too low"라는 메시지가 출력
  • 입력한 숫자가 생성된 숫자보다 크면 "Too high"라는 메시지가 출력
  • 사용자가 프로그램에서 생성한 번호를 입력하면 게임이 종료

Step 5 - Edit the main.rs file

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;
      }
   }
}

profile
Mickey
post-custom-banner

0개의 댓글