RUST-下载更新卸载rust、编写简单程序、cargo的基本使用、let、mach等方法、外部的crate

配置

下载

进入官网,点击install
在这里插入图片描述在这里插入图片描述

更新

rustup update

卸载

rustup self install

安装验证

rustc --version
在这里插入图片描述出现版本即为成功

本地文档

运行rustup doc可以在浏览器打开本地文档

编写Rust程序

编写

fn main(){
    println!("hello world")
}

在这里插入图片描述

编译与运行

rustc 只适合小程序

rustc main.rs 编译(只适合简单的程序)
-win: .\main.exe
-linux\mac: ./main 运行
在这里插入图片描述

Cargo

使用cargo创建项目 cargo new 项目名

cargo new hello_cargo
会创建一个新的目录 hello_cartgo ,项目名也是hello_cargo

  • Cargo.toml
  • src目录
  • —main.rs
  • 初始化了一个新的git仓库 .gitgnore
toml格式,是cargo的配置格式

[package] 内容是用来配置包的
[dependencies] 列出项目的依赖项

在rust中,代码的包称作crate
  • cargo生成的main.rs在src目录下
  • 而Cargo.toml在项目顶层下
  • 源代码都应该在src目录下
  • 顶层目录可以放置:readme、许可信息、配置文件和其他与程序源码无关的文件
  • 如果创建项目时没有使用cargo,也可以把项目转化为使用cargo:
    把源代码移动到src下
    创建cargo.toml并填写相应的配置
构建cargo项目 cargo build

在这里插入图片描述

编译+运行cargo项目 cargorun
检查代码,确保能通过编译 但是不产生可执行文件,比build快得多
为发布构建 cargo build --release

编译时会进行优化,代码会运行的更快,但是编译时间更长
会在target/release而不是target/debug生成可执行文件
两种配置

  • 一个开发
  • 一个正式发布

猜测游戏

  • 建立项目 cargo new guessing_game
  • let声明的变量是不可变得‘
  • 加mut是可变的
  • & 引用默认也是不可变的
  • io::Result Ok,Err
  • Except 如果接受到Error,就把用户的输入输出
  • {} 是占位符
use std::io; //可以进行输入输出
fn main() {
    println!("猜数");
    println!("猜测一个数");
    let foo=1;//变量不可变
    let bar=foo;//immutable
    let mut guess=String::new();//变量可变
    io::stdin().read_line(&mut guess).expect("无法读取行");
    println!("你猜测的数字是:{}",guess);
}

产生随机数

添加依赖

在cargo.toml中【dependencies】添加rand=“0.3.14”

use rand::Rng;
fn main() {
    let secret_num=rand::thread_rng().gen_range(1,101);
    println!("数字是{}",secret_num);
}
比较数字大小
//允许使用同名变量,覆盖原来变量
 //将guess转换成int类型
    let guess:i32=guess.trim().parse().expect("数据转换失败");
    //类似于switch
    match guess.cmp(&secret_num){

        std::cmp::Ordering::Less => print!("小"),
        std::cmp::Ordering::Equal => println!("相同"),
        std::cmp::Ordering::Greater => println!("大"),
    }

循环

loop

//将guess转换成int类型,使用match可以对转化错误时进行处理
        let guess:i32=match guess.trim().parse(){
            Ok(num)=>num,//接收的数据就是需要的数据
            Err(_)=>continue,//下划线不关心错误信息

        };

参考视频

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值