官术网_书友最值得收藏!

Declaring variables and immutability

Variables allow us to store a value and easily refer to it later in code. In Rust, we use the let keyword to declare variables. We already had a glimpse of it in the greet.rs example in the previous section. In mainstream imperative languages such as C or Python, initializing a variable does not stop you from reassigning it to some other value. Rust deviates from the mainstream here by making variables immutable by default, that is, you cannot assign the variable to some other value after you have initialized it. If you need a variable to point to something else (of the same type) later, you need to put the mut keyword before it. Rust asks you to be explicit about your intent as much as possible. Consider the following code:

// variables.rs
 
fn main() {
let target = "world";
let mut greeting = "Hello";
println!("{}, {}", greeting, target);
greeting = "How are you doing";
target = "mate";
println!("{}, {}", greeting, target);
}

We declared two variables, target and greeting. target is an immutable binding, while greeting has a mut before it, which makes it a mutable binding. If we run this program, though, we get the following error:

As you can see from the preceding error message, Rust does not let you assign to target again. To make this program compile, we'll need to add mut before target in the let statement and compile and run it again. The following is the output when you run the program:

$ rustc variables.rs
$ ./variables
Hello, world
How are you doing, mate

let does much more than assign variables. It is a pattern-matching statement in Rust. In Chapter 7, Advanced Concepts, we'll take a closer look at let. Next, we'll look at functions.

主站蜘蛛池模板: 平顶山市| 扶绥县| 图们市| 淅川县| 山西省| 泰州市| 泰宁县| 通许县| 谷城县| 滨州市| 绿春县| 潼关县| 绿春县| 南澳县| 渝北区| 新津县| 高陵县| 贵州省| 澄迈县| 霍山县| 临西县| 保山市| 肇庆市| 凤城市| 商洛市| 诏安县| SHOW| 漯河市| 伽师县| 青川县| 威宁| 兴文县| 翁牛特旗| 大邑县| 三江| 章丘市| 江达县| 溧水县| 南部县| 西畴县| 镇坪县|