博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【rust】-使用cargo创建项目及cargo源的替换
阅读量:4579 次
发布时间:2019-06-09

本文共 1687 字,大约阅读时间需要 5 分钟。

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

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库的信息

引用库信息可以访问查找,这里我们查询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
 

再次运行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

你可能感兴趣的文章
数据结构与算法 多种排序算法
查看>>
Vijos P1794 文化之旅
查看>>
Coding源码学习第四部分(Masonry介绍与使用(一))
查看>>
Bug 汇总
查看>>
Windows Desktop Optimization.bat
查看>>
操作数据库,增删改查
查看>>
[jAudio] JAVA上经典特征提取工具
查看>>
TestLead的总结
查看>>
git版本分支和分支、分支和主分支切换
查看>>
C++学习之模板(一) ----函数模板
查看>>
清除浮动的方式
查看>>
appium+python环境搭建
查看>>
MySQL
查看>>
关于数据库外连接和内连接和交叉连接
查看>>
git基本使用
查看>>
Leetcode 109 Convert Sorted List to Binary Search Tree
查看>>
1. 决策树(Decision Tree)-决策树原理
查看>>
179. Largest Number
查看>>
测量中角度处理常用函数
查看>>
基于django封装的常用装饰器和函数
查看>>