【rust】-cargo创建项目及cargo源的替换

---------------------------------参考文档-------------------------------

https://rustlang-cn.org/office/rust/book/getting-started/ch01-03-hello-cargo.html

https://doc.rust-lang.org/cargo/reference/source-replacement.html

https://www.jianshu.com/p/71fb28974cf6

--------------------------------------------------------------------------

cargo介绍

cargo是rust的程序构建和包管理工具,通过在cargo中声明依赖库,可以下载并编译依赖库,同时cargo也可以用于整个项目的生命周期,创建、编译、发布。cargo在安装rust的时候就已经完成了安装,所以不需要单独安装。

以掷色子游戏为例,要求输入n,掷出n个色子。

使用cargo创建项目

cargo new playing_dice

cargo就会自动为我们创建目录结构:一个Cargo.toml文件和src文件夹下的main文件

Cargo.toml中主要是声明当前程序信息及依赖库,查看Cargo.toml的内容,并适当修改。

在main.rs中写入自定义的代码

//引入外部库
use std::io;

fn main() {
    println!("请输入次数:");
    let mut count=String::new();
    io::stdin().read_line(&mut count).expect("输入错误!");
    println!("你输入的次数为:{}",count);

}

使用cargo check检查是否有语法错误。

cargo check

 执行cargo run执行程序

因为需要使用随机数,所以需要引入依赖库rand

打开Cargo.toml,在dependencies中增加rand库

修改main.rs,增加生成随机数的逻辑

//引入外部库
use std::io;
use rand::Rng;

fn main() {
            println!("请输入次数:");
            let mut count=String::new();
            let mut i=0;
            io::stdin().read_line(&mut count).expect("输入错误!");
            println!("你输入的次数为:{}",count); let int_count = count.trim().parse().expect("请输入数字!"); while i<int_count { let rand_number=rand::thread_rng().gen_range(1,6); println!("{}",rand_number); i=i+1;} }
 

再次运行cargo check检查是否有语法错误,因为我们引用了rand 的crates,所以cargo会下载rand的库文件及依赖库并编译

正常编译之后,运行cargo run 来执行程序。

更换cargo的源

crates.io访问很慢,所以我们需要更换crate的源,目前常用的是中科大的源

修改$HOME/.cargo/config文件内容,如果没有这个文件的话,则手工创建这个文件

里面贴上内容

[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

猜你喜欢

转载自www.cnblogs.com/sunlingC/p/11128147.html