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();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】