(Rust入门教程)Rust course_1--安装,变量绑定

前言

因为某些需要,要研究大段的Rust代码,又对Rust的流行早有耳闻,今天开始学习学习,但愿能坚持下来,发这里就当笔记的备份了。

教程

关于本书 - Rust语言圣经(Rust Course) 

Rust圣经,感觉是中文最全的rust教程了,可惜没有视频教程,只能这样看了。

安装

官网下载,win命令行:

cargo new hello_world

 新建完成后,

cd hello_world

code .

打开vscode,记得在vscode里下载rust的包,直接搜索安装即可

(你肯定不想用记事本写代码吧~🥺)

开始学习吧

变量命名与绑定
fn main(){
    let mut a=10;
    let b=5;
}

mut:可变。

没有mut:不可变。

防止编译器warning:

#[allow(unused_variables)]
fn main(){
    let mut _a=10;
}

 加下划线或者#[allow(unused_variables)],用不到的变量rust编译器就会报错,这里足以体现rust编译器的强大了。

变量遮蔽,作用域

fn main里面是一个作用域,也可以自己加{ }生成一个作用域,当然定义的函数也是一个作用域。

变量遮蔽仅在作用域里生效。

什么是变量遮蔽呢?😏

首先要是不可变的变量,示例如下:

fn main() {
   let x=10;
   {
    let x=5;
    println!("{}",x);
   } 
   println!("{}",x);
}

中间的{}里重新绑定了变量x,这里相当于是又开辟了个“5”的内存空间,然后把x绑定上去(原来x是绑定在10上面的),当然这个重定向只在{}中有效。

所以会输出

5

10

 但如果是mut就不存在这种情况。

fn main() {
   let mut x=10;
   {
    x=5;
    println!("{}",x);
   } 
   println!("{}",x);
}

输出

5

5

这里是直接把原来存10的空间存5了,所以不存在“重定向”。会一直输出5 

变量解构

一些高级用法。。

fn main() {
    let (mut x, y) = (1, 2);
    x += 2;

    assert_eq!(x, 3);
    assert_eq!(y, 2);
}
struct Struct {
    e: i32
}

fn main() {
    let (a, b, c, d, e);

    (a, b) = (1, 2);
    // _ 代表匹配一个值,但是我们不关心具体的值是什么,因此没有使用一个变量名而是使用了 _
    [c, .., d, _] = [1, 2, 3, 4, 5];
    Struct { e, .. } = Struct { e: 5 };

    assert_eq!([1, 2, 1, 4, 5], [a, b, c, d, e]);
}

Follow Me

觉得写的还行的话可以点点关注,最近会频繁更新😉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值