Ferrugem - Gerenciador de Pacotes
Cargo é o gerenciador de pacotes do RUST. Isso funciona como uma ferramenta e gerencia projetos Rust.
Alguns comandos de carga comumente usados estão listados na tabela abaixo -
Sr. Não | Comando e Descrição |
---|---|
1 | cargo build Compila o projeto atual. |
2 | cargo check Analisa o projeto atual e relata erros, mas não cria arquivos de objeto. |
3 | cargo run Compila e executa src / main.rs. |
4 | cargo clean Remove o diretório de destino. |
5 | cargo update Atualiza as dependências listadas em Cargo.lock. |
6 | cargo new Cria um novo projeto de carga. |
Cargo ajuda a baixar bibliotecas de terceiros. Portanto, ele atua como um gerenciador de pacotes. Você também pode construir suas próprias bibliotecas. O Cargo é instalado por padrão quando você instala o Rust.
Para criar um novo projeto de carga, podemos usar os comandos fornecidos a seguir.
Crie uma caixa binária
cargo new project_name --bin
Crie uma caixa de biblioteca
cargo new project_name --lib
Para verificar a versão atual da carga, execute o seguinte comando -
cargo --version
Ilustração - Criar um projeto Binary Cargo
O jogo gera um número aleatório e solicita que o usuário adivinhe o número.
Etapa 1 - Criar uma pasta de projeto
Abra o terminal e digite o seguinte comando cargo new guess-game-app --bin .
Isso criará a seguinte estrutura de pastas.
guess-game-app/
-->Cargo.toml
-->src/
main.rs
O novo comando de carga é usado para criar uma caixa. O sinalizador --bin indica que a caixa que está sendo criada é uma caixa binária. Caixas públicas são armazenadas em um repositório central chamado crates.iohttps://crates.io/.
Etapa 2 - Incluir referências a bibliotecas externas
Este exemplo precisa gerar um número aleatório. Visto que a biblioteca padrão interna não fornece lógica de geração de número aleatório, precisamos olhar para bibliotecas externas ou caixas. Vamos usarrandcaixa que está disponível no site crates.io crates.io
o https://crates.io/crates/randé uma biblioteca de ferrugem para geração de números aleatórios. Rand fornece utilitários para gerar números aleatórios, convertê-los em tipos e distribuições úteis e alguns algoritmos relacionados à aleatoriedade.
O diagrama a seguir mostra o site crate.io e o resultado da pesquisa por rand crate.
Copie a versão da caixa rand para o arquivo Cargo.toml rand = "0.5.5" .
[package]
name = "guess-game-app"
version = "0.1.0"
authors = ["Mohtashim"]
[dependencies]
rand = "0.5.5"
Etapa 3: compilar o projeto
Navegue até a pasta do projeto. Execute o comandocargo build na janela do terminal -
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
A caixa de rand e todas as dependências transitivas (dependências internas de rand) serão baixadas automaticamente.
Etapa 4 - Compreendendo a lógica de negócios
Vamos agora ver como funciona a lógica de negócios para o jogo de adivinhação de números -
O jogo inicialmente gera um número aleatório.
Um usuário é solicitado a inserir a entrada e adivinhar o número.
Se o número for menor que o número gerado, uma mensagem “Muito baixo” é impressa.
Se o número for maior que o número gerado, uma mensagem “Muito alto” é impressa.
Se o usuário inserir o número gerado pelo programa, o jogo é encerrado.
Etapa 5 - Edite o arquivo main.rs
Adicione a lógica de negócios ao arquivo 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;
}
}
}
Etapa 6 - Compilar e executar o projeto
Execute o comando cargo run no terminal. Certifique-se de que o terminal aponta para o diretório do projeto.
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 ..