Rust之语法<1>变量绑定

来源:互联网 发布:网络用语盘点 编辑:程序博客网 时间:2024/06/05 06:44

事实上,每个非”Hello,World”的Rust程序都需要使用到变量绑定。就像这样:

fn main(){    let x=5;}

其他编程语言把这个称为变量,但是Rust的变量绑定有所不同。例如,一个let 表达式左边是一个”pattern(即模式)”,而不是一个变量名。这意味着我们可以这样写:

let (x,y)=(1,2);

这个表达式执行后,x的值是1,y的值是2.模式这个特点非常强大,这本书有单独的章节讲解它。

Rust是静态类型的语言,这意味着要在之前声明好我们的变量类型,然后再编译的时候检查的。那么我们的第一个例子是如何工作的呢?Rust把这个东西叫做”type inference(类型推断)”。如果类型推动能够推算出变量是什么类型的话,那么你就不必明确声明一个变量的类型。

如果我们想要明确指出变量类型的话,可以在 后加上类型:

let x:i32 =5;

用自然语言表述就是:x绑定的类型是i32 ,绑定的值是5
在这个例子中,x代表的32位整数。Rust有许多初始的整数类型,它们开头以i 代表有符号整数,u 代表无符号整数。可能的整数大小是8、16、32位。

以后,我们可能以注释的形式来声明变量类型。如下面:

fn main(){    let x=5;//x:i32}

在Rust中,变量绑定是immutable(不可改变)的。下面这段代码是错误的:

let x=5;x=10;

执行后,错误信息是:

src/main.rs:3:5: 3:8 error: re-assignment of immutable variable `x` [E0384]src/main.rs:3     x=6;                  ^~~src/main.rs:2:9: 2:10 note: prior assignment occurs heresrc/main.rs:2     let x=5;

如果想要绑定的变量可变,你可以使用mut

let mut x=5;x=6;

在Rust中,在使用变量前,要确保绑定变量要用一个值来初始化。
看下面的代码:

src/main.rs:3:39: 3:40 error: use of possibly uninitialized variable: `x` [E0381]src/main.rs:3      println!("The value of x is :{}",x);

记住:Rust不会让我们使用一个没有初始化值的变量。

我们来看一下添加到println 里面的内容:
如果你在要打印的字符串中包含大括号” { }”的话,Rust会理解成你要在字符串中插入值。在上例中,我们在字符串中添加了一个” , “和” x “来表明” x “是我们想要插入的值。

0 0
原创粉丝点击