当前位置:首页 > 科技  > 软件

Rust编程基础之六大数据类型

来源: 责编: 时间:2023-11-01 17:00:43 240观看
导读1.Rust数据类型在 Rust 中, 每一个值都属于某一个 数据类型(data type), 这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。我们将看到两类数据类型子集:标量(scalar)和复合(compound)。Rust是静态类型(statically typed

1.Rust数据类型

在 Rust 中, 每一个值都属于某一个 数据类型(data type), 这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。我们将看到两类数据类型子集:标量(scalar)和复合(compound)。dKo28资讯网——每日最新资讯28at.com

Rust是静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的类型。根据值及其使用方式,编译器通常可以推断出我们想要用的类型。当多种类型均有可能时,必须增加类型注解,像这样:dKo28资讯网——每日最新资讯28at.com

let u_number: u32 = "42".parse().expect("Not a number!");

如果不像上面的代码这样添加类型注解 : u32,Rust 会显示如下错误,这说明编译器需要我们提供更多信息,来了解想要的类型:dKo28资讯网——每日最新资讯28at.com

图片dKo28资讯网——每日最新资讯28at.com

2.标量类型

标量(scalar)类型代表一个单独的值。Rust 有四种基本的标量类型:整型、浮点型、布尔类型和字符类型。dKo28资讯网——每日最新资讯28at.com

2.1 整型

整数 是一个没有小数部分的数字。下面表格展示了 Rust 内建的整数类型。我们可以使用其中的任一个来声明一个整数值的类型。dKo28资讯网——每日最新资讯28at.com

长度dKo28资讯网——每日最新资讯28at.com

有符号dKo28资讯网——每日最新资讯28at.com

无符号dKo28资讯网——每日最新资讯28at.com

8-bitdKo28资讯网——每日最新资讯28at.com

i8dKo28资讯网——每日最新资讯28at.com

u8dKo28资讯网——每日最新资讯28at.com

16-bitdKo28资讯网——每日最新资讯28at.com

i16dKo28资讯网——每日最新资讯28at.com

u16dKo28资讯网——每日最新资讯28at.com

32-bitdKo28资讯网——每日最新资讯28at.com

i32dKo28资讯网——每日最新资讯28at.com

u32dKo28资讯网——每日最新资讯28at.com

64-bitdKo28资讯网——每日最新资讯28at.com

i64dKo28资讯网——每日最新资讯28at.com

u64dKo28资讯网——每日最新资讯28at.com

128-bitdKo28资讯网——每日最新资讯28at.com

i128dKo28资讯网——每日最新资讯28at.com

u128dKo28资讯网——每日最新资讯28at.com

archdKo28资讯网——每日最新资讯28at.com

isizedKo28资讯网——每日最新资讯28at.com

usizedKo28资讯网——每日最新资讯28at.com

每一个变体都可以是有符号或无符号的,并有一个明确的大小。有符号 和 无符号 代表数字能否为负值,换句话说,这个数字是否有可能是负数(有符号数),或者永远为正而不需要符号(无符号数)。这有点像在纸上书写数字:当需要考虑符号的时候,数字以加号或减号作为前缀;然而,可以安全地假设为正数时,加号前缀通常省略。有符号数以补码形式存储。dKo28资讯网——每日最新资讯28at.com

每一个有符号的变体可以储存包含从 -(2n - 1) 到 2n - 1 - 1 在内的数字,这里 n 是变体使用的位数。所以 i8 可以储存从 -(27) 到 27 - 1 在内的数字,也就是从 -128 到 127。无符号的变体可以储存从 0 到 2n - 1 的数字,所以 u8 可以储存从 0 到 28 - 1 的数字,也就是从 0 到 255。dKo28资讯网——每日最新资讯28at.com

另外,isize 和 usize 类型依赖运行程序的计算机架构:64 位架构上它们是 64 位的,32 位架构上它们是 32 位的。dKo28资讯网——每日最新资讯28at.com

可以使用以下表格的任何一种形式编写数字字面值。请注意可以是多种数字类型的数字字面值允许使用类型后缀,例如 57u8 来指定类型,同时也允许使用 _ 作为分隔符以方便读数,例如1_000,它的值与你指定的 1000 相同。dKo28资讯网——每日最新资讯28at.com

数字字面值dKo28资讯网——每日最新资讯28at.com

例子dKo28资讯网——每日最新资讯28at.com

Decimal (十进制)dKo28资讯网——每日最新资讯28at.com

98_222dKo28资讯网——每日最新资讯28at.com

Hex (十六进制)dKo28资讯网——每日最新资讯28at.com

0xffdKo28资讯网——每日最新资讯28at.com

Octal (八进制)dKo28资讯网——每日最新资讯28at.com

0o77dKo28资讯网——每日最新资讯28at.com

Binary (二进制)dKo28资讯网——每日最新资讯28at.com

0b1111_0000dKo28资讯网——每日最新资讯28at.com

Byte (单字节字符)(仅限于u8)dKo28资讯网——每日最新资讯28at.com

b'A'dKo28资讯网——每日最新资讯28at.com

那么该使用哪种类型的数字呢?如果拿不定主意,Rust 的默认类型通常是个不错的起点,数字类型默认是 i32。isize 或 usize 主要作为某些集合的索引。dKo28资讯网——每日最新资讯28at.com

2.2 浮点型

Rust 也有两个原生的 浮点数(floating-point numbers)类型,它们是带小数点的数字。Rust 的浮点数类型是 f32 和 f64,分别占 32 位和 64 位。默认类型是 f64,因为在现代 CPU 中,它与 f32 速度几乎一样,不过精度更高。所有的浮点型都是有符号的。dKo28资讯网——每日最新资讯28at.com

以下是浮点数的代码例子:dKo28资讯网——每日最新资讯28at.com

fn main() {    let x = 2.0; // f64    let y: f32 = 3.0; // f32}

浮点数采用 IEEE-754 标准表示。f32 是单精度浮点数,f64 是双精度浮点数。dKo28资讯网——每日最新资讯28at.com

2.3 布尔型

正如其他大部分编程语言一样,Rust 中的布尔类型有两个可能的值:true 和 false。Rust 中的布尔类型使用 bool 表示。dKo28资讯网——每日最新资讯28at.com

布尔型的使用例子如下:dKo28资讯网——每日最新资讯28at.com

fn main() {    let t = true;    let f: bool = false;}

使用布尔值的主要场景是条件表达式,例如 if 表达式。dKo28资讯网——每日最新资讯28at.com

2.4 字符类型

Rust 的 char 类型是语言中最原生的字母类型。下面是一些声明 char 值的例子:dKo28资讯网——每日最新资讯28at.com

fn main() {    let c = 'z';    let z: char = 'ℤ';    let heart_eyed_cat = ' 
                

本文链接:http://www.28at.com/showinfo-26-16367-0.htmlRust编程基础之六大数据类型

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 掌握Golang匿名函数

下一篇: Go语言中的闭包:封装数据与功能的强大工具

标签:
  • 热门焦点
Top