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;
  1. 定义一个整数常量
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 布尔值,truefalse
str 字符串切片,表示一个不可变的字符串(通常与 & 配合使用)
String 可变的、拥有所有权的字符串类型
() (单元类型) 表示无值或空元组,通常用于函数返回值类型,表示没有返回内容

补充说明

  • 整数类型:Rust 提供了有符号 (iX) 和无符号 (uX) 的整数类型,其中 X 是类型的位数。isizeusize 是与平台架构相关的整数类型,分别表示指针大小。
  • 浮点数类型f32f64 分别是 32 位和 64 位浮点数,Rust 默认使用 f64
  • char 类型:用于表示单个 Unicode 字符。注意,char 和字符串是不同的类型,char 是一个单独的字符,而 String&str 是字符序列。
  • 布尔类型 (bool):只能是 truefalse
  • 字符串&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();
posted @   代码世界faq  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示