RUST基础:变量声明

Rust基础入门书籍推荐《深入浅出RUST》

Rust的变量必须先声明后,才可以使用,声明变量用let关键字。

其语法为:let  x  =  1;

变量完整的声明格式为:

 let x : i32 = 1;

其中i是整数有符号类型,32位代表占32位bits,后续会详解。

 局部变量声明一定是以关键字let开头,变量的类型跟在:(冒号)后面。这样语法歧义性更少,更能突出变量类型,减少因为变量的类型错误,语法分析器更容易编写。

let关键字所声明的变量语句,具有模式解构(pattern destructure)的功能。关于模式结构,后面会有专门说明其用法含义的博客。

通过let声明的变量,官方称为不可变变量,可以理解为只读变量,即变量x声明后,无法进行更改。

例如:

fn main() {
    let x = 1;
    x = 2;
}

以上代买运行后,会编译错误:

 

我们要将上述代码编译通过,需要用到mut关键字,通过mut关键字声明的变量,可以实现变量x的改写:

fn main() {
    let mut x = 1;
    x = 2;
}

上述let声明的标量,就是一个典型的模式解构,我们把 mut x 看成一个组合,即mut x是一个“模式”,以这个为例,我们举一反三,可以用此方式同时声明多个变量:

    let (mut a,mut b) = (1,2);

"="左边的部分看成是一个模式,右边是变量初始化,这是对tuple的模式解构。

在Rust中,一般把声明的局部变量并初始化的语句称为“变量绑定”,这里强调的是“绑定”的含义,与C/C++中的“赋值初始化”的语句有所区别。

Rust中,每个变量必须被合理的初始化之后才能被使用,使用未初始化的变量的错误,在Rust中是不可能出现的,当然利用unsafe,hack除外。

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

上述代码编译报错:

 

 在代码中,如果变量x未初始化,但是也没有使用的这个变量x,那么编译将会通过,不会报错,同时变量声明后,可以在后面在进行初始化:


fn main(){
    let x;
    let a = 3;
    if a != 3 {
        x = 1
        println!("{}",x)
    }
    else{
        println!("{}",a)
    }
}
 

 

posted @ 2022-07-17 16:07  海的航行  阅读(275)  评论(0编辑  收藏  举报