【rust】-使用cargo创建项目及cargo源的替换 - Go语言中文社区

【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的时候就已经完成了安装,所以不需要单独安装。

 

以下将以掷色子游戏为例,来练习使用cargo;掷色子游戏要求输入n,掷出n个色子。

 

使用cargo创建项目

cargo new playing_dice

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

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

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

//引入标准io库
use std::io;

fn main() {
    println!("请输入次数:");
    let mut count=String::new();//定义可变变量 count,let表示定义变量,mut表示该变量时可变的
    io::stdin().read_line(&mut count).expect("输入错误!");//读取输入,将其保存到变量count中
    println!("你输入的次数为:{}",count);//使用占位符打印

}

这里我们使用了io库,io库来自于标准库 std,通过use 关键字将io库引入到当前作用域。
let关键字表示定义了一个变量,在rust中默认变量是不可变变量,关键字mut表示 该变量是可变的。

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

cargo check

如果代码检查通过,执行cargo run执行即可运行程序

 

下面引入依赖库rand来生成随机数,rand是一个库crate,包含能被其他程序使用的代码。

打开Cargo.toml,在dependencies中维护上引用rand库的信息

引用库信息可以访问https://crates.io查找,这里我们查询rand,使用0.7.0的版本。

 

修改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的库文件及依赖库并编译(图是后续补的,所以显示是0.6.5版本,正常应该显示的是0.7.0)

检查通过,运行cargo run 查看效果。

 

更换cargo的源

程序中引用crates,编译时需要从官方仓库中下载crates文件,但是使用官方的源有的时候很慢并且不稳定,所以使用时需要替换为国内镜像地址,目前常用的是中科大的源。

步骤:修改$HOME/.cargo/config文件内容,如果没有这个文件的话直接手工创建。

里面贴上内容

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

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

 

转载于:https://www.cnblogs.com/sunlingC/p/11128147.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_30641999/article/details/96539048
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 21:31:33
  • 阅读 ( 1882 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢