使用Cargo工具高效创建Rust项目_相关技巧

来源:脚本之家  责任编辑:小易  
目录
前言一、功能强大的Cargo工具1、Cargo工具是什么?2、使用Cargo命令创建 hello_cargo 项目3、项目文件目录里各文件的内容和特点4、Cargo 常用命令二、Rust 语言的输入输出1、输入输出测试2、具体代码解析

前言

本文紧跟上篇Rust博文内容,讲解Cargo工具在Rust项目创建时的妙用,手把手教你使用Cargo工具在黑窗口创建项目。此外,创建项目之后,简单的做一个Rust语言中输入输出的测试,上文提到学好Rust语言的方法就是一步一步打基础,因此仍要潜心修炼,打牢基础。

一、功能强大的Cargo工具

1、Cargo工具是什么?

Cargo是Rust 的构建系统和包管理工具,主要功能包括: 创建和管理 Rust 的模块系统下载和管理依赖库调用rustc或其他构建工具来构建项目安装Rust 的时候会自动安装Cargo验证的命令:cargo --version

2、使用Cargo命令创建 hello_cargo 项目

命令:cargo new hello_cargo

其中code .是VSC工具的命令,意思是使用他来打开项目文件:

可以看到Cargo工具为我们生成了其他的文件,具体看一下都是什么作用:

自动创建了一个新目录hello_cargo,包含:

Cargo.tomlsrc目录main.rs初始化了一个新的Git仓库:.gitignore可以使用其他的vcs(版本控制系统)或者不适用vcs:cargo new 项目名 --vcs

3、项目文件目录里各文件的内容和特点

Cargo.tomlTOML(Tom’s Obvious,Minimal Language)格式,存放Cargo的配置

[package],是一个区域标题,表示下方内容是用来配置包的(package)name:项目名version:项目版本edition:使用的Rust版本[dependencies]另一个区域的开始,它会列出项目的依赖项。在Rust里,代码的包写做:crate

2.src/main.rs

cargo生成的 main.rs 在src目录下,此外源代码都应该放在src目录下而cargo.toml在项目顶层下顶层目录可以放置:RENAME、许可信息、配置文件等将非cargo创建的项目转化为cargo的方法:把源代码移动到src里面创建cargo.toml并填写相应的配置

3.Cargo.lock

第一次执行Cargo build命令会在顶层目录生成 cargo.lock文件该文件负责追踪项目依赖的精确版本不需要手动修改此文件

4、Cargo 常用命令

cargo build创建可执行文件:target\debug\hello_cargo.execargo run构建和运行cargo项目,编译代码+执行结果如果之前编译过且源码没有发生改变,则会直接运行二进制文件cargo check检查代码,确保能够通过编译,但是不产生任何可执行文件cargo check 要比 cargo build 快得多编写代码得时候可以周期性得使用cargo check命令检查代码,提高效率cargo build --release一共两种配置:开发使用 :cargo build正式发布: cargo build --release为发布构建,编译时会进行优化代码运行速度会更快,但是编译时间长会在target/release 目录下生成可执行文件,而不是 target/debug

二、Rust 语言的输入输出

1、输入输出测试

源码:

use std::io;
fn main() {
    println!("测试输入输出功能");
    println!("从键盘输入一个数字:");

    let mut a=String::new();

    io::stdin().read_line(&mut a).expect("无法读取行");
    
    println!("输出结果为:{}",a);
}

运行效果:

2、具体代码解析

接下来把不熟悉的代码依次解释:

let mut a=String::new();
 

let用来声明变量,mut代表该变量值可修改,String::new()意思是调用String类的实例。

在Rust 中默认变量不可修改,加上mut 才可以被修改new 在Rust 中常用来创建类型实例这句话的意思就是将一个空白的字符串绑定到可变的字符串变量a上
use std::io;
io::stdin().read_line(&mut a).expect("无法读取行");

use用来引入库,std::io在Rust 中代表标准的输入输出,整体可理解为c中的#include<stdio.h>
在io库调用stdin()类里的read_line()方法,而该方法需要传入可变字符串,因此将 &mut a传入,
为什么要加地址符&呢,这里啊用到了C++里的引用,这样参数列表里字符串的变化会修饰实参a的变化,且不会产生副本,安全高效。最后还有一个ecpect()方法,read_line()方法会返回一个Result枚举类型,含有Ok 和 Err 两个变体。

如果Result返回的是Err,那么expect()方法就会中断整行代码并打印expect里的信息。如果返回的是OK,那么就会把read_line()方法中得到的值赋给OK一并返回给用户。
println!("输出结果为:{}",a);

类似于c 里的 printf("输出结果为%d",a);上面的{}是一个占位符,输出的时候会被后面变量的值取代,有几个{}后面就有多少变量。

到此这篇关于使用Cargo工具高效创建Rust项目的文章就介绍到这了,更多相关Rust输入输出语句内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:如何使用rust实现简单的单链表深入讲解下Rust模块使用方式关于Rust?使用?dotenv?来设置环境变量的问题C++的替代:微软如何使用rust?Rust中的Struct使用示例详解

  • 本文相关:
  • 解决git 提交后中文字符会乱码的问题
  • gitee命令行上传项目的步骤详解
  • 十分钟内学会 避免用户刷新导致重复post提交
  • 详解metrics应用监控指标的使用说明
  • gitee的下载安装配置及使用步骤详解
  • 基于webstorm卡顿问题的2种解决方法
  • wordpress一键切换为其他用户身份登录功能方法
  • git提交代码错了吃后悔药的几种常用办法(场景分析)
  • vscode常用知识小结
  • 使用git上传到码云分支的实现
  • 合金装备5幻痛cargo2是什么
  • 怎么解决 Cargo 无法正常使用的问题
  • 怎么解决 Cargo 无法正常使用的问题
  • CARGO RECEIPT DATE和发票日期可以一样吗
  • cargo cut-off是截重柜时间?
  • breakbulk和bulk cargo
  • rgoship.ff文件。邮箱936021794@qq.com 希望顺便告诉如何使用
  • Cargox有个文件传错了
  • cargox上出文件开船后多久要提供
  • cargox是不是多余的文件传不上去啊
  • Cargox有个文件传错了怎么更改
  • cargox平台上传发票的属性是什么
  • cargox区块链密匙文件怎么获取
  • cargox系统注册费400需要代扣代缴吗
  • cargox认证+一定要提供英文营业执照吗
  • cargox上公司验证不通过怎么办
  • 埃及cargox注册号怎么查找
  • cargox平台的区块链不知道怎么操作
  • cargox区块链密匙文件怎么获取
  • cargoX公司验证过程
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页相关技巧如何使用rust实现简单的单链表深入讲解下rust模块使用方式关于rust?使用?dotenv?来设置环境变量的问题c++的替代:微软如何使用rust?rust中的struct使用示例详解解决git 提交后中文字符会乱码的问题gitee命令行上传项目的步骤详解十分钟内学会 避免用户刷新导致重复post提交详解metrics应用监控指标的使用说明gitee的下载安装配置及使用步骤详解基于webstorm卡顿问题的2种解决方法wordpress一键切换为其他用户身份登录功能方法git提交代码错了吃后悔药的几种常用办法(场景分析)vscode常用知识小结使用git上传到码云分支的实现2019最新的pycharm激活码(推荐)vscode检测到#include错误请更新includep从console.log说起(console.log详细介绍分享最新sublime text4 build 4107注册进制转换算法原理(二进制 八进制 十进制 十六进制)eclipse 格式化代码时不换行与自动换行的实现方法微信小程序设置http请求的步骤详解抓包工具fiddler的使用方法详解(fiddler中文教程变量、函数、类的命名规则windows下idea使用git clone failed. could asp与js的数组和字符串下标介绍vscode插件安装完成后的配置详解git 教程之远程仓库详解git设置用户名密码的示例代码使用cargo工具高效创建rust项目git merge最简洁用法详解解析在浏览器地址栏输入一个url后发生了什么jetbrains公司三大编辑器迭代循环模板快捷键详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved