理解 Rust 中的原始数据类型

Rust 有一个被称为原始数据类型的列表。 在本文中,我们将讨论 Rust 中的原始数据类型列表——我们将把它们分为标量和复合类型——以及 Rust 中原始数据类型的限制。

我们将涵盖:

  • 什么是原始数据类型?

  • Rust 编程语言回顾

  • Rust 中的原始数据类型

    • Rust 中的标量原始类型

    • Rust 中的复合原始类型

  • Rust 原始类型的限制

本文旨在帮助那些刚开始使用 Rust 并希望快速理解并能够使用 Rust 中的原始数据类型的人。

什么是原始数据类型?

顾名思义,原始数据类型基本上只是编程语言附带的数据类型。 它们是内置的,当组合在一起时,可以形成更复杂的数据类型,称为非原始数据类型。

正如我们所提到的,Rust 编程语言带有一个内置的原始数据类型列表,开发人员可以将其用作其他数据类型的构建块。

Rust 编程语言回顾

Rust 将自己描述为一种运行速度极快、防止所有崩溃并消除数据竞争的系统编程语言。 它的内存效率很好,因为它没有运行时或垃圾收集器。 由于这个和许多其他原因, Rust 是一种流行且深受喜爱的编程语言 。

目前,这种编程语言及其社区还相对年轻。 这意味着正在不断地开发以添加、改进和稳定各种特性、方法和特征实现。

轻松使用 Rust 。 您可以通过简单的命令行界面 (CLI) 、 WebAssembly (Wasm) 、网络和嵌入式

人们大多喜欢谈论 Rust 是否值得学习或学习曲线是否陡峭。 但最终,由每个人决定是否值得为您的个人需求学习。

当然,确实有一些事情需要注意让 Rust 与众不同:


超过 20 万开发人员使用 LogRocket 来创造更好的数字体验 了解更多 →


  • 这是一门精心设计的语言

  • 与其他语言相比,它更注重正确性和安全性

  • 它具有良好的并发性和速度

  • 它有一个非常强大的社区

Rust 由 Graydon Hoare 设计,并于 2010 年 7 月 7 日首次亮相。截至本文发表时,该编程语言 目前的版本为 1.63.0 ,于 2022 年 8 月 11 日发布。

Rust 中的原始数据类型

让我们看看 Rust 提供的原始数据类型。

我们想首先将它们分组为标量和复合数据类型。 这两者的区别在于复合类型在一个类型中包含多个值,而标量类型只包含一个值。

Rust 中的标量原始类型

在 Rust 中有五种你应该熟悉的标量原始类型:

  • 布尔值

  • 特点

  • 整数

  • 漂浮的

  • 单元

让我们看一下每种类型的定义和示例。

bool数据类型

布尔数据类型被称为真或假,如下所示:

let active:bool = true;
let inactive:bool = false;

确保您使用 bool声明布尔变量时的关键字,如上所示。


来自 LogRocket 的更多精彩文章:

  • 不要错过 The Replay 来自 LogRocket 的精选时事通讯

  • 了解 LogRocket 的 Galileo 如何消除噪音以主动解决应用程序中的问题

  • 使用 React 的 useEffect 优化应用程序的性能

  • 之间切换 在多个 Node 版本

  • 了解如何 使用 AnimXYZ 为您的 React 应用程序制作动画

  • 探索 Tauri ,一个用于构建二进制文件的新框架

  • 比较 NestJS 与 Express.js


布尔数据类型主要用于比较值或逻辑——例如,检查测试分数是 A、B 还是 C。

char数据类型

字符类型是 4 字节数据类型。 它用于存储单个字符,例如:

let first:char = 'a';
let second:char = 'b';
let symbol:char = '∞';

字符数据类型用于存储单个字符,允许 Rust 中的内存分配保持较小。

integer数据类型

有多种整数数据类型,分为两类:有符号 (i) 和无符号 (u)。 它们包括以下内容: i8, i16, i32, i64, isize, u8, u16, u32, u64, usize. 这里有些例子:

let height:u8 = 172; //u8
let weight:u8 = 68; // u8 
let size:u8 = 23; // u8
let data:i8 = -128 // i8

floating数据类型

浮动数据类型始终是 f32或者 f64,范围可以从负数到正数:

f32 ---> -3.8x10^8 to +3.8x10^8
f64 ---> -1.8x10^308 to +1.8x10^308 

浮点数就是我们所说的小数。 请参阅下面的一些示例:

let interest:f32 = 1.20;
let returns:f32 = 2.80;
let agency:f64 = 10.0;

unit数据类型

在 Rust 中,单位数据类型使用符号 ()它主要用作避免使用的机制 null.

任何不返回任何内容的表达式实际上都会返回 ()在锈。 它更像 void在类 C 语言中。

另一个用例就像 Response<(), String>这意味着响应可能失败或成功。

Rust 中的复合原始类型

下面是 Rust 中的四种复合原始数据类型,我们将在下面介绍:

  • 大批

  • 细绳

  • 元组

正如我们在上一节中所做的那样,让我们看一下每种类型的定义和示例。

array数据类型

数组是包含一组元素的数据类型。 它的大小始终是固定的并且具有相同的数据类型,如下所示:

let counts: [i32; 7] = [4, 2, 4, 8, 3, 2, 4, 8];
let grade: [i32; 4] = [20, 40, 34, 70];

在上面的例子中, counts数组包含 7数据类型元素 i32(整数),而 grade数组包含 4数据类型元素 i32.

string数据类型

有 两个 stringRust 中的数据类型 : String(字符串对象)和 &str(字符串字面量)。

这 Stringobject 不在核心语言中,但在标准库中提供。 它也是最常见的字符串类型,因为它是可变的。 创建一个 String:

String::new();
​
​
let name = String::new();
name.push_str = 'Victor Jonah';
println("{}", name);

这 &strRust 中的数据类型被视为字符串切片,据说是不可变的,这意味着它们在程序的生命周期内不能更改。 看看下面的例子:

let name:&str = 'Victor Jonah';
let company:&str = 'LogRocket';

在上面的示例中,在该程序的生命周期内, name将始终与字符串相关联 Victor Jonah, 尽管 company将始终与字符串相关联 LogRocket.

slice数据类型

切片与数组类似,但有一些区别。

虽然数组大小是固定的,但切片的大小是动态的; 长度在编译时是未知的,数据被分割成一个新的集合。 请参见下面的示例:

let grades: [132:6] = [20, 10, 30, 40, 50, 10, 20];
let slice = &[20...4]; // 20, 10, 30, 40

切片也是一个指向上面字符串对象的指针,我们可以在其中检索字符串值中的某个字符。 我们还可以借用切片中的元素以在其他地方使用。

tuple数据类型

在 JavaScript 等其他语言中,元组被称为对象。 它们是包含不同类型元素的固定数据类型——与数组不同,数组只能包含相同类型的元素。

let employee: (&str, i32, &str) = ('Victor Jonah', 25, 'Technical Writer');

在上面的例子中,元组 employee包含三个元素:一个字符串 ( Victor Jonah), 一个整数 ( 25) 和另一个字符串 ( Technical Writer).

大海视频App,海量超清电影资源秒播,支持投屏无会员限制!

Rust 及其原始类型的局限性

作为一个旁注,讨论 Rust 编程语言 的一般限制将是必不可少的。 大多数人都说过或声称 Rust 非常可爱——这是真的——但有几点需要考虑。

首先要注意的是它的学习曲线很陡。 Rust 需要更多时间来学习作为一种语言,因为它是一种系统编程语言并且具有高级编程概念。

当谈到 Rust 原始数据类型并将它们组合在一起时,有很多东西需要学习——比如模式匹配、指针、字符串文字、三种类型的数组等等。 不过,值得您花时间。

根据我的观察,陡峭的学习曲线主要是由于早期使用 Rust 的 Rust 文档缺乏清晰度。

这让我想到了第二点:Rust 社区一开始可能不太引人注目,但当你伸出手时,社区就会变得热情、活跃和乐于助人。

另外需要注意的是,Rust 是一种静态编程语言,它非常严格,以至于在编译之前必须说明所有内容。 这是 Rust 的主要原则之一,它强制要求在编译时检查所有内容。

这可能会减慢开发速度,但也是一个很好的原因,因为当大多数事情在编译时检查时,程序在运行时失败的可能性较小。

结论

Rust 原始数据类型是内置的,它们的用例正是典型编程语言所需要的。 这些数据类型有两种形式:标量和复合。

了解和理解 Rust 中所有不同的原始数据类型对您的 Rust 之旅非常有帮助。 为了这个目的,我在简短的一面写了这篇文章。 感谢您的阅读。

LogRocket :全面了解生产 Rust 应用程序

调试 Rust 应用程序可能很困难,尤其是当用户遇到难以重现的问题时。 如果您对监控和跟踪 Rust 应用程序的性能、自动显示错误以及跟踪缓慢的网络请求和加载时间感兴趣,请 尝试 LogRocket 。

LogRocket 就像一个用于 Web 和移动应用程序的 DVR,几乎可以记录 Rust 应用程序上发生的所有事情。 无需猜测问题发生的原因,您可以汇总并报告问题发生时应用程序所处的状态。 LogRocket 还监控您的应用程序的性能,报告客户端 CPU 负载、客户端内存使用情况等指标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值