认识变量
1. 变量的定义
let variable_name: type = value;
1
let
:关键字用于声明变量。variable_name
:变量的名称,由字母、数字和下划线组成,以字母或下划线开头。type
:变量的类型,在 Rust 中所有变量都必须明确指定类型。value
:可选项,用于给变量赋初值。
在rust中,变量默认是不可变的
1.1 可变变量
如果需要修改变量,需要使用mut
关键字来声明一个变量。
fn main() {
//boss的血量初始为10
let mut boss_health:u16 = 10;
//玩家攻击一次boss boos血量减去1
boss_health -= 1;
println!("{}",boss_health)
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
2. 常量
常量是在编译时就已经知道并且不可修改的值。使用const
关键字声明。
比如:
fn main() {
const PI: f32 = 3.14159;
println!("The value of PI is {}", PI);
}
1
2
3
4
2
3
4
3. 类型
每个变量都有一个类型,这个类型决定了变量在内存中占用多少空间。
3.1 基本类型
整型
类型长度 有符号 无符号 8-bit i8 u8 16-bit i16 u16 32-bit i32 u32 64-bit i64 u64 128-bit i128 u128 arch isize usize 需要注意的是arch,它表示长度取决于CPU的架构。isize 和 usize 类型取决于程序运行的计算机 CPU 类型: 若 CPU 是 32 位的,则这两个类型是 32 位的,同理,若 CPU 是 64 位,那么它们则是 64 位。isize 和 usize 的主要应用场景是用作集合数据类型的索引。
有符号
的变量可以储存包含从-2^(n-1) 到 2^(n-1)-1
之间的数值,n是类型的长度。无符号
数存储的范围为0 到 2^(n-1)
之间。浮点型
小数
- f32 32位大小
- f64 64位大小
布尔型
真和假,true和false,用关键字
bool
表示。布尔值占用内存大小为1个字节。字符类型
使用关键字
char
表示,占用4个字节,值用单引号
声明
例子:
fn main() {
//boss血量
let boss_health:u16 = 10;
//boss位置
let x : f64 = 20.23213;
let y : f64 = 120.23213;
//boss是否可攻击
let is_attack : bool = false;
//boss表情
let boos_expression : char = '😀';
println!(
"boss血量:{},坐标:({},{}), 是否可攻击:{}, 表情:{}"
,boss_health,x,y,is_attack,boos_expression
)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
数值类型可以进行加减乘除等运算,但不同类型之间,无法运算
fn main() {
let a :u32 = 20;
let b :u32 = 30;
let c :f32 = 10.23;
let d :f64 = 36.55;
let m = a + b;
//无法进行运算 报错
let s = c + d;
//无法进行运算 报错
let l = a + c;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
fn main() {
let a :u32 = 20;
let d :f64 = 36.55;
//类型之间互转 可以用 as关键字
let m = a as f64;
let add = m + d;
println!("add is {}",add)
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
3.2 字符串类型
fn main() {
//boss名字
let boss_name = "mszlu";
println!("boss name is {}",boss_name);
}
1
2
3
4
5
2
3
4
5
字符串是我们经常使用的类型。
在上述定义中,我们并没有给变量设置类型,这是因为双引号
定义的值为字符串,会自动推导其类型。
字符串类型标识为&str
,是一个切片
,关于切片的概念我们后面在讲。
&str
是一个不可变引用。其中str
表示类型,&
表示引用。
在rust中字符串是一个较为难的一个知识点,后续在详细讲解,这里先了解一个基本概念。