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

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

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

1.Rust数据类型

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

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

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

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

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

2.标量类型

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

2.1 整型

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 浮点型

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

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

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

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

2.3 布尔型

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

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

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

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

2.4 字符类型

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

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 6月安卓手机好评榜:魅族20 Pro蝉联冠军

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年6月1日至6月30日,仅限国内市场。第一名:魅族20 Pro好评率:95%5月份的时候魅族20 Pro就是
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之“想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!”曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 四年持续更迭坚持探索行业无人之境,HarmonyOS 4带来五大升级多项创新

    除了华为每年新发布的旗舰手机系列,上亿花粉更加期待鸿蒙系统每次的跨版本大更新。8月4日,HarmonyOS 4于HDC 2023正式发布,这也是该系统历经四年的再
  • 引领旗舰级影像能力向中端机普及 OPPO K11 系列发布 1799 元起

    7月25日,OPPO正式发布K系列新品—— OPPO K11 。此次 K11 在中端手机市场长期被忽视的影像板块发力,突破性地搭载索尼 IMX890 旗舰大底主摄,支持 OIS
Top