文章目录
一 变量
1 不可变的变量
提示:如果直接使用let关键字定义变量,那么此变量不可变。并且默认情况下,Rust中的变量是不可变的。
fn main() {
let x = 6;
println!("变量的值=={}", x);
x=7;
println!("重新赋值后的变量的值=={}", x);
}

上面的代码对变量x重新赋值,就会编译报错。
2 可变的变量
如果要想变量可变,那么需要加上mut关键字。
fn main() {
let mut x = 6;
println!("变量的值=={}", x);
x=7;
println!("重新赋值后的变量的值=={}", x);
}
3 变量和常量
对于Rust变量来说,默认是不可变的,那么是否可以说是常量呢?
答案是:不能。
1 变量默认是不变的,但是常量总是不变的,并且不能对常量使用let关键字。
2 常量可以在任何作用域声明
3 常量只能用在常量表达式,不能作为函数调用的结果
4 隐藏
fn main() {
let x = 6;
println!("变量的值=={}", x);
let x=x+1;
println!("重新赋值后的变量的值=={}", x);//7
let x=x*2;
println!("重新赋值后的变量的值=={}", x);//14
}
上述代码定义了变量x。默认是不可变的,当定义相同名称的变量的时候,会隐藏原来的变量。执行x=x+1 是相当于隐藏的值+1进行新的变量x的赋值操作。
隐藏和可变的区别是隐藏会创建新的变量
提示:以下是本篇文章正文内容,下面案例可供参考
二 数据类型
Rust中主要有四种标量类型。分别是:整数、浮点数、布尔、字符串
1.整数
| 长度 | 有符号 | 无符号 |
|---|---|---|
| 8bit | i8 (-127-128) | u8 (0-128) |
| 16bit | i16 (-65535-65536) | u16((0-65536)) |
| 32bit | i32 | u32 |
| 64bit | i64 | u64 |
| Arch | isize | usize |
Arch依赖于计算机架构。32位计算机就是32位,64位计算机则是64位
fn main() {
let x:i8 = -129;
println!("整数的值=={}",x);
}
上面代码运行则会报错:因为i8的范围是-127到128
= note: `#[deny(overflowing_literals)]` on by default
= note: the literal `129` does not fit into the type `i8` whose range is `-128..=127`
= help: consider using the type `i16` instead
整数的进制表示
| 进制 | 例子 |
|---|---|
| 十进制 | 10_000 |
| 二进制 | 0b1111_0000 |
| 八进制 | 0o77 |
| 十六进制 | 0xff |
| char(仅限于u8) | b’A’ |
fn main() {
let x=10_000;
let y=0o77;
let z=0b1111_0000;
let a=0xff;
let b=b'A';
println!("基于10进制的值=={}",x); //10000
println!("基于10进制的值=={}",y); //63
println!("基于10进制的值=={}",z); //240
println!("基于10进制的值=={}",a); //255
println!("基于10进制的值=={}",b); //65
}
整数的隐式转换
as运算符

上面的代码1是i32位的,现在用i64来接受,那么会显示编译错误。此时就可以使用as
fn main() {
let b: i64 = 1i32 as i64;
println!("x的值=={}",

本文详细介绍了Rust编程语言中的变量使用,包括不可变变量、可变变量和常量的区别。此外,讲解了数据类型的四种基本类型:整数、布尔、字符和复合类型(元组、数组),以及整数的进制表示和隐式转换。还探讨了函数的定义和使用,包括无参无返回值、有参无返回值、有返回值的函数,以及if表达式和循环结构(loop、while、for)。最后,文章提到了数字的比较运算和不同类型数据之间的转换规则。
最低0.47元/天 解锁文章
8万+

被折叠的 条评论
为什么被折叠?



