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

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

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

1.Rust数据类型

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

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

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

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

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

2.标量类型

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

2.1 整型

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 浮点型

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

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

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

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

2.3 布尔型

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

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

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

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

2.4 字符类型

Rust 的 char 类型是语言中最原生的字母类型。下面是一些声明 char 值的例子:JJ528资讯网——每日最新资讯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语言中的闭包:封装数据与功能的强大工具

标签:
  • 热门焦点
  • 6月安卓手机好评榜:魅族20 Pro蝉联冠军

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年6月1日至6月30日,仅限国内市场。第一名:魅族20 Pro好评率:95%5月份的时候魅族20 Pro就是
  • 分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 微软邀请 Microsoft 365 商业用户,测试视频编辑器 Clipchamp

    8 月 1 日消息,微软近日宣布即将面向 Microsoft 365 商业用户,开放 Clipchamp 应用,邀请用户通过该应用来编辑视频。微软于 2021 年收购 Clipchamp,随后开始逐步整合到 Microsof
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 疑似小米14外观设计图曝光:后置相机模组变化不大

    下半年的大幕已经开启,而谁将成为下半年手机圈的主角就成为了大家关注的焦点,其中被传有望拿下新一代骁龙8 Gen3旗舰芯片的小米14系列更是备受大家瞩
  • OPPO K11采用全方位护眼屏:三大护眼能力减轻视觉疲劳

    日前OPPO官方宣布,全新的OPPO K11将于7月25日正式发布,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼IMX890主摄,堪称是2000档位影像表
  • 三翼鸟智能家居亮相电博会,让用户体验更真实

    2021电博会在青岛国际会展中心开幕中,三翼鸟直接把“家”搬到了现场,成为了展会的一大看点。这也是三翼鸟继9月9日发布了行业首个一站式定制智慧家平台后的
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top