1. Rust 基本数据类型
Rust 基本数据类型
Rust 是静态类型语言,编译器在编译时就必须知道所有变量的类型。
- Rust 默认是不可变的,使用mut关键字可以声明可变变量。
let x = 5;
x = 6; //error
let mut x = 5;
x = 6; //ok
Shadowing
可以用相同的名字声明新的变量,此时新的变量会覆盖之前的变量,这种情况叫做变量的shadowing。
let x = 5;
let x = x + 1;
使用let声明的同名新变量,它的类型可以与之前的变量不同。
let spaces = " ";
let spaces = spaces.len();
Data Types
rust 是静态类型语言,编译器在编译时就必须知道所有变量的类型。
let guess: u32 = "42".parse().expect("Not a number!");
Expression and Argument
表达式返回一个值,语句不返回值。 这里大括号里面的就是一个表达式,它返回一个值。
let y = {
let x = 3;
x + 1 //expression
};
这里的就是statement,它返回空tuple。
let y = {
let x = 3;
x + 1; //statement
};
流控制
if else 是表达式,所以可以用在let语句的右边。
let number = if condition { 5 } else { 6 };
if else 一般语法:
let number = 3;
if number < 5 {
println!("condition was true");
} else {
println!("condition was false");
}
loop 关键字告诉Rust反复执行一块代码,直到你喊停 loop 是一个无限循环,可以用break跳出循环。
let mut counter = 0;
let result = loop{
counter +=1;
if counter == 10 {
break counter * 2;
}
};
println!("The result is {}", result);
另外一种循环是每次执行循环体前都判断一次条件
while 循环为这种模式而生
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}
println!("LIFT OFF!!!");
遍历集合使用for循环更简洁紧凑,它可以针对集合中的每个元素来执行一些代码
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("the value is: {}", element);
}
Range: 指定一个开始数字和一个结束数字,Range可以生成他们之间的数组(不含结束)
for number in (1..4).rev() {
println!("{}!", number);
}
println!("LIFT OFF!!!");