추가되는 Crate 설정을 위해 Cargo.toml에 dependencies를 추가한다. Crate는 아래에서 설명을..
[cargo] Cargo.toml
[package] name = "guessing_game" version = "0.1.0" authors = ["Your Name <you@example.com>"] edition = "2018"
[dependencies] rand = "^0.3.0"
cargo run을 실행하면 아래와 같이 결과가 나온다.
> Executing task: cargo run <
Finished dev [unoptimized + debuginfo] target(s) in 0.19s Running `target\debug\guessing_game.exe` Guess the number!! ........The secret number is: 45 Please input your guess. 40 You guessed: 40 Too Small Please input your guess. 50 You guessed: 50 Too Big Please input your guess. abcd Please type a number Please input your guess. 45 You guessed: 45 You Win!!!
어렸을때 많이 하던 숫자맞추기 게임이다. 상대가 정한것보다 숫자가 높으면 Too Big을 낮으면 Too Small을 출력하고 숫자가 아니면 에러처리를하고 맞으면 프로그램을 끝낸다.
조각조각
crate
nodejs에 npm이 있는것처럼 Rust에는 cargo가 있는가보다. Cargo.toml 내에 dependencies 항목에 원하는 패키지와 버전을 명기하면 build시에 필요한놈 들을 원격지 저장소에서 땡겨와서 설치를 진행한다. 이 패키지를 Crate라 부르고 node에 npmjs.com 가 있는것처럼 crates.io 라는 Crate들을 모아놓은 사이트에서 기본적으로 지원이 되는듯하다.
Cargo.toml
[dependencies] rand = "0.3.0"
원문에는 Cargo.toml에 대한 뭔가 설명이 긴데 위와 같이 적었다면 rand 0.3.x 버전과 호환되는 최신의 Crate를 crates.io에서 내려받아 프로젝트에 설치를 진행한다는 뜻이다. 참고로 버전 룰은 Semantic Versioning을 따른다. crate.io에 가서 rand를 검색하면 아래와 같은 화면을 볼 수가 있다.
사이트에 접속하면 최신버전은 0.7.0이고 이전버전은 화면 우측에 Versions 항목에서 정보를 찾을 수 있다. 설정 후 cargo build를 실행하면