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

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

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

1.Rust数据类型

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

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

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

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

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

2.标量类型

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

2.1 整型

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 浮点型

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

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

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

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

2.3 布尔型

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

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

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

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

2.4 字符类型

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

标签:
  • 热门焦点
  • K8S | Service服务发现

    K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • Flowable工作流引擎的科普与实践

    Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 这款新兴工具平台,让你的电脑效率翻倍

    这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 三分钟白话RocketMQ系列—— 如何发送消息

    三分钟白话RocketMQ系列—— 如何发送消息

    我们知道RocketMQ主要分为消息 生产、存储(消息堆积)、消费 三大块领域。那接下来,我们白话一下,RocketMQ是如何发送消息的,揭秘消息生产全过程。注意,如果白话中不小心提到相关代
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的“今天”,百度也很迷茫。“新业务到 2022 年底还是 0,希望 2023 年出来一个 1。”这是2022年底,李彦宏
  • 三星显示已开始为AR设备研发硅基LED微显示屏

    三星显示已开始为AR设备研发硅基LED微显示屏

    7月18日消息,据外媒报道,随着苹果首款头显产品Vision Pro在6月份正式推出,AR/VR/MR等头显产品也就将成为各大公司下一个重要的竞争领域,对显示屏这一关
  • OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    据此前官方宣布,OPPO将于7月25日也就是今天下午14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖
  • 由于成本持续增加,笔记本产品价格预计将明显上涨

    由于成本持续增加,笔记本产品价格预计将明显上涨

    根据知情人士透露,由于材料、物流等成本持续增加,笔记本产品价格预计将在2021年下半年有明显上涨。进入6月下旬以来,全球半导体芯片缺货情况加剧,显卡、处理器
Top