01. rust-字段类型定义
声明变量let的使用
let 关键字用于声明变量。它是语言的核心部分,因为 Rust 的变量是默认不可变的,let 用于引入变量并赋予它初始值。
不可变量
let variable_name = value;
可变变量
要想修改,在加关键字mut
let mut x = 5;
x = x + 1;
类型推断:自动推断变量的类型,通常不需要显式声明类型。如果你需要显式指定类型,可以使用冒号语法。
i32是内存限制(32位)
let x: i32 = 5; // 明确指定类型
常量const的使用
在Rust中定义一个常量,它与let的区别在于,常量不可更改。并且指定常量的类型
const NAME: TYPE = VALUE;
- 定义一个整数常量
const MAX_POINTS: i32 = 100;
```rust
2. 定义一个浮点数常量
```rust
const PI: f64 = 3.14159;
以下是 Rust 中常见的数据类型及其说明,整理成表格形式:
| 类型 | 描述 |
|---|---|
i8 |
有符号 8 位整数,范围:-128 到 127 |
i16 |
有符号 16 位整数,范围:-32,768 到 32,767 |
i32 |
有符号 32 位整数,范围:-2,147,483,648 到 2,147,483,647 |
i64 |
有符号 64 位整数,范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
i128 |
有符号 128 位整数,范围:-170,141,183,460,469,231,731,687,303,715,884,105,728 到 170,141,183,460,469,231,731,687,303,715,884,105,727 |
isize |
有符号整数,大小取决于平台(32 位平台上是 i32,64 位平台上是 i64) |
u8 |
无符号 8 位整数,范围:0 到 255 |
u16 |
无符号 16 位整数,范围:0 到 65,535 |
u32 |
无符号 32 位整数,范围:0 到 4,294,967,295 |
u64 |
无符号 64 位整数,范围:0 到 18,446,744,073,709,551,615 |
u128 |
无符号 128 位整数,范围:0 到 340,282,366,920,938,463,463,374,607,431,768,211,456 |
usize |
无符号整数,大小取决于平台(32 位平台上是 u32,64 位平台上是 u64) |
f32 |
32 位浮点数,符合 IEEE-754 标准 |
f64 |
64 位浮点数,符合 IEEE-754 标准 |
char |
单个 Unicode 字符,表示一个字符(4 字节) |
bool |
布尔值,true 或 false |
str |
字符串切片,表示一个不可变的字符串(通常与 & 配合使用) |
String |
可变的、拥有所有权的字符串类型 |
() (单元类型) |
表示无值或空元组,通常用于函数返回值类型,表示没有返回内容 |
补充说明
- 整数类型:Rust 提供了有符号 (
iX) 和无符号 (uX) 的整数类型,其中X是类型的位数。isize和usize是与平台架构相关的整数类型,分别表示指针大小。 - 浮点数类型:
f32和f64分别是 32 位和 64 位浮点数,Rust 默认使用f64。 char类型:用于表示单个 Unicode 字符。注意,char和字符串是不同的类型,char是一个单独的字符,而String或&str是字符序列。- 布尔类型 (
bool):只能是true或false。 - 字符串:
&str是字符串切片,通常表示一个不可变的字符串,String则是拥有所有权的动态字符串类型。 - usize 和 isize的使用:当你需要处理与内存、数组、切片相关的操作时,尤其是在涉及数组索引、切片长度、指针偏移时。因为这些操作涉及到内存大小,usize 和 isize 能确保代码在不同架构下(32位和64位)的正确性。
usize不能为负数,通常用于内存地址、位置、索引、长度(或大小!)。
isize 可以为负数,通常用于表示地址、位置、索引或长度的偏移量。
字段命名
如果字段故意未使用,使用_来标识,编译就不会警告
let b: i32 = call_me();
warning: unused variable: b
--> functions1.rs:4:9
|
4 | let b: i32 = call_me(); // Don't change this line
| ^ help: if this is intentional, prefix it with an underscore: _b
|
= note: #[warn(unused_variables)] on by default
warning: 1 warning emitted
更改后_b则不会warning
let _b: i32 = call_me();

浙公网安备 33010602011771号