您的位置:首页 > 其它

Rust之语法<1>变量绑定

2015-08-26 08:22 162 查看
事实上,每个非”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 here
src/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 “是我们想要插入的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: