机箱标准

1.0.0·来源
展开描述

§Rust标准库

Rust标准库是可移植Rust软件的基础用于更广泛的锈蚀生态系统。它提供了核心类型,如Vec<T>选项<T>,库定义语言操作基本体,标准宏,输入/输出多线程,其中还有很多其他事情.

标准默认情况下,适用于所有防锈板条箱。因此可以在中访问标准库使用语句通过路径标准,如中所示使用std::env.

§如何阅读本文档

如果你已经知道你要找的东西的名字,最快的方法发现它是使用搜索酒吧在页面顶部。

否则,您可能想跳转到以下有用的部分之一:

如果这是您第一次使用,那么标准库的文档是写给随便阅读的人。点击有趣的东西应该通常会带你去有趣的地方。不过,还有一些重要的方面你不想错过,所以请继续阅读,了解标准库和它的文档!

熟悉标准库的内容后,您可以开始发现散文的冗长使人分心。在你的这个阶段您可能希望按总结”按钮将其折叠成更容易浏览的视图。

当您查看页面顶部时,还要注意“源”链接。Rust的API文档随源代码提供代码,我们鼓励您阅读它。标准库源代码是一般来说质量很高,从窗帘后面看一眼通常很有启发性。

§标准库文档中有什么?

首先,Rust Standard Library分为多个重点模块,所有这些都列在本页下面。这些模块是所有铁锈都是在基岩上铸造的,它们有着强大的名字喜欢标准::切片标准::cmp模块文档通常包括模块概述和示例开始熟悉图书馆的地方。

第二,上的隐式方法基元类型在此处记录。这个可以造成混淆的原因有两个:

  1. 当基本体由编译器实现时,标准库直接在基元类型上实现方法(它是这样做的库),这些是记录在基本体.
  2. 标准库导出许多模块与同名基元类型。这些定义了与基元相关的其他项类型,但不是最重要的方法。

例如,有一个基元类型的页面i32型列出了可以调用的所有方法32位整数(非常有用),并且有一个模块页面标准::i32记录常量值的最小值马克斯(很少有用)。

请注意原语的文档字符串【T】(同时称为“slice”)。许多方法调用字符串Vec<T>实际上是调用上的方法字符串【T】分别通过废弃的强制转换.

第三,标准库定义铁锈前奏曲,一个小集合导入每个模块的项目(主要是特性)机箱。前奏曲中的特点无处不在,构成了前奏曲文档是了解该库的良好切入点。

最后,标准库导出了许多标准宏在此页面上列出(技术上,并非所有标准宏由标准库定义-有些宏由编译器-但它们在这里的文档是一样的)。就像前奏曲一样默认情况下,标准宏会导入到所有板条箱中。

§对文档进行修改

查看锈蚀贡献指南在这里.此文档的来源可以在上找到github在“library/std/”目录中。要做出改变,请确保先阅读指南,然后提交请求您提出更改建议。

感谢您的贡献!如果您看到文档的一部分改进,提交PR,或先在上与我们聊天不一致#文档。

§参观锈蚀标准图书馆

此板条箱文档的其余部分致力于指出值得注意的Rust Standard Library的功能。

§容器和集合

这个选项结果模块定义可选和错误处理类型,选项<T>结果<T,E>. Theiter公司模块定义Rust的迭代器特性,迭代器,它与对于循环到访问集合。

标准库公开了三种处理连续内存区域:

  • Vec<T>-堆已分配矢量可以在运行时调整大小。
  • 【T;N】-内联阵列在编译时具有固定大小。
  • 【T】-A动态调整大小到任何其他类型的连续存储,无论是否分配了堆。

切片只能通过某种指针,就这样来了有多种口味,如:

  • &【T】-共享切片
  • &mut(吨)-可变切片
  • 方框<[T]>-拥有的部分

字符串,一个UTF-8字符串切片,是一个基元类型,并且是标准库定义了许多方法。Rust字符串s通常被访问为不可变引用:&字符串.使用拥有的字符串用于建筑和可变字符串。

要转换为字符串,请使用格式!宏,和用于转换字符串使用来自Str特质。

可以通过将数据放在参考编号框中或卢比类型,如果进一步包含在单元格参考单元格,可能发生突变以及共享。同样,在并发设置中,通常将原子参考计数箱,,带有Mutex公司得到同样的结果效果。

这个收藏模块定义地图、集合、链接列表和其他典型的集合类型,包括常见的哈希映射<K,V>.

§平台抽象和I/O

除了基本数据类型外,标准库主要涉及抽象公共平台的差异,尤其是Windows和Unix衍生产品。

常见类型的I/O,包括文件夹,传输控制协议、和UDP协议,在中定义这个国际奥委会,英尺、和模块。

这个线模块包含Rust的线程抽象。同步包含更多基本共享内存类型,包括原子的,最大功率调制最大功率开关,其中包含消息传递的通道类型。

§前后使用main()

标准库的许多部分预计在使用前后都能正常工作main();但这并没有得到测试的保证或保证。建议您编写自己的测试并在您希望支持的每个平台上运行它们。这意味着使用标准main之前/之后,尤其是与OS或全局状态不受稳定性和可移植性保证的约束尽力提供。尽管如此,我们仍对错误报告表示赞赏。

另一方面核心分配最有可能在这样的环境中工作警告:任何可挂接的行为,如panic、oom处理或分配器也会取决于挂钩的兼容性。

一些功能在main外部也可能会有不同的行为,例如stdio可能会无缓冲,一些恐慌可能会变成中止,回溯可能不会得到象征或类似的东西。

已知限制的非穷尽列表:

  • 螺纹接头的主要使用也会影响其他功能:
  • 在UNIX下,main之前的文件描述符0、1和2可以保持不变(它们保证在主管道期间打开,如果它们在程序启动时未打开,则会打开到/dev/null O_RDWR)

基本体类型§

阵列
固定大小的数组,表示为【T;N】,对于元素类型,T型、和非负编译时间常量大小,N个.
布尔
布尔类型。
烧焦
字符类型。
功能32
32位浮点类型(具体来说,IEEE 754-2008中定义的“binary32”类型)。
f64页
64位浮点类型(具体来说,IEEE 754-2008中定义的“二进制64”类型)。
fn公司
函数指针,如fn(使用)->bool.
i8个
8位有符号整数类型。
i16号机组
16位有符号整数类型。
i32型
32位有符号整数类型。
i64型
64位有符号整数类型。
i128码
128位有符号整数类型。
显象管尺寸
指针大小的有符号整数类型。
指针
原始的、不安全的指针,*常数T、和*多吨.
参考
参考文献,&T型&多吨.
一个动态大小的连续序列视图,【T】.
字符串
字符串切片。
元组
一个有限的异质序列,(T、U…).
u8型
8位无符号整数类型。
u16型
16位无符号整数类型。
u32型
32位无符号整数类型。
u64型
64位无符号整数类型。
u128型
128位无符号整数类型。
单元
这个()类型,也称为“单元”。
使用
指针大小的无符号整数类型。
第16页实验
16位浮点类型(具体来说,IEEE 754-2008中定义的“二进制16”类型)。
第128页实验
128位浮点类型(具体来说,IEEE 754-2008中定义的“二进制128”类型)。
从未实验
这个!类型,也称为“从不”。

模块§

分配
内存分配API。
任何
用于动态类型或类型反射的实用程序。
SIMD和供应商内部模块。
阵列
数组基元类型的实用程序。
ascii公司
对ASCII字符串和字符的操作。
回溯
支持捕获操作系统线程的堆栈回溯
用于处理借用数据的模块。
盒装的
这个方框<T>堆分配的类型。
细胞
可共享的可变容器。
烧焦
实用程序烧焦基元类型。
克隆
这个克隆无法“隐式复制”的类型的trait。
化学机械抛光
用于比较和排序值的实用程序。
收藏
集合类型。
转换
类型之间转换的特征。
违约
这个违约具有默认值的类型的trait。
环境价值
过程环境的检查和操作。
错误
用于处理错误的接口。
功能32
的常量功能32单精度浮点类型。
f64页
的常量f64页双精度浮点型。
飞行情报员
与FFI绑定相关的实用程序。
柔性制造技术
格式化和打印实用程序字符串第条。
英尺
文件系统操作。
未来
异步基本功能。
搞砸
通用哈希支持。
暗示
对编译器的提示,它会影响代码的发出或优化方式。
i8个计划折旧
冗余常数模块i8个基元类型.
i16号机组计划折旧
冗余常数模块i16号机组基元类型.
i32型计划折旧
冗余常数模块i32型基元类型.
i64型计划折旧
冗余常数模块i64型基元类型.
i128码计划折旧
冗余常数模块i128码基元类型.
国际奥委会
核心I/O功能的特征、助手和类型定义。
显象管尺寸计划折旧
冗余常数模块显象管尺寸基元类型.
iter公司
可组合的外部迭代。
标记
原始特征和代表类型基本属性的类型。
微机
处理内存的基本函数。
用于TCP/UDP通信的网络原语。
号码
数字的附加功能。
操作
可重载运算符。
选项
可选值。
操作系统
特定于操作系统的功能。
恐慌
标准库中的恐慌支持。
路径
交叉成型路径操纵。
大头针
将数据固定到内存中某个位置的类型。
序曲
铁锈前奏曲
原始的
此模块重新导出基元类型以允许使用可能被其他声明类型所掩盖。
过程
处理流程的模块。
脉冲重复频率
通过原始指针手动管理内存。
钢筋混凝土
单线程引用计数指针。“Rc”代表“Reference”计数”。
结果
错误处理结果类型。
切片基元类型的实用程序。
字符串
实用程序字符串基元类型。
一串
UTF-8编码的可增长字符串。
同步
有用的同步原语。
任务
用于处理异步任务的类型和特征。
线
本机线程。
时间
时间量化。
u8型计划折旧
冗余常数模块u8型基元类型.
u16型计划折旧
冗余常数模块u16型基元类型.
u32型计划折旧
冗余常数模块u32型基元类型.
u64型计划折旧
冗余常数模块u64型基元类型.
u128型计划折旧
冗余常数模块u128型基元类型.
使用计划折旧
冗余常数模块使用基元类型.
血管内皮细胞
具有堆分配内容的连续可增长数组类型,已写入Vec<T>.
断言_比赛实验
不稳定模块包含不稳定资产匹配宏。
异步_iter公司实验
可组合异步迭代。
自动识别实验
该模块支持自动区分。
bstr公司实验
这个字节Str字节字符串类型和特征实现。
第16页实验
的常量第16页半精度浮点类型。
第128页实验
的常量第128页四精度浮点类型。
本征实验
编译器内部函数。
拍打实验
用于导出的帮助器模块pattern_type(图案类型)
随机的,随机的实验
随机值生成。
范围实验
实验替换范围类型
模拟指令集实验
便携式SIMD模块。
不安全的_粘合剂实验
操作员过去常常把活字夹变成不安全的活页夹,然后再把活字放回去。

§

断言
断言布尔表达式是真的在运行时。
断言_等式
断言两个表达式彼此相等(使用部分等式).
断言_
断言两个表达式不相等(使用部分等式).
配置文件
在编译时计算配置标志的布尔组合。
展开到调用它的列号。
编译_错误
当遇到给定的错误消息时,会导致编译失败。
凹面(concat)
将文字连接到静态字符串片。
数据库
打印并返回快速和脏的给定表达式的值调试。
调试_断言
断言布尔表达式是真的在运行时。
调试_断言_等式
断言两个表达式彼此相等。
调试_断言_
断言两个表达式不相等。
环境价值
在编译时检查环境变量。
eprint打印
打印到标准错误。
eprintln公司
打印到标准错误,带有换行符。
文件
展开到调用它的文件名。
格式
创建字符串使用运行时表达式的插值。
格式_参数
为其他字符串格式宏构造参数。
包括
根据上下文将文件解析为表达式或项。
包括_字节
包含文件作为对字节数组的引用。
包括_字符串
以字符串形式包含UTF-8编码文件。
是_x86(x86)_特征_检测
要测试的宏运行时CPU功能是否在上可用x86/x86-64平台。
线
展开到调用它的行号。
比赛
返回给定表达式是否与提供的模式匹配。
模块_路径
展开为表示当前模块路径的字符串。
选项_环境价值
(可选)在编译时检查环境变量。
恐慌
扰乱当前线程。
打印
打印到标准输出。
打印ln
使用换行符打印到标准输出。
纤细的
将其参数字符串化。
螺纹_地方的
声明类型为的新线程本地存储密钥标准::线程::LocalKey.
待办事项
表示未完成的代码。
尝试已弃用
展开结果或传播其错误。
未实现的
显示未实现的代码,并显示消息“未实现”。
无法到达的
表示无法访问的代码。
血管内皮细胞
创建一个Vec公司包含参数。
将格式化数据写入缓冲区。
将格式化数据写入缓冲区,并附加换行符。
cfg(立方英尺/加仑)_比赛实验
用于定义的宏#[立方英尺]类似匹配的语句。
凹面(concat)_字节实验
将文字连接到字节片。
凹面(concat)_身份已弃用实验
将标识符串联为一个标识符。
常数_格式_参数实验
等同于格式_参数,但可以在某些常量上下文中使用。
格式_参数_荷兰实验
等同于格式_参数,但在末尾添加了一个换行符。
日志_语法实验
打印传递到标准输出的令牌。
轨迹_实验
启用或禁用用于调试其他宏的跟踪功能。

关键词§

自我Ty
中的实现类型特质执行块,或类型中的当前类型定义。
作为
在类型之间强制转换,或重命名导入。
异步
返回一个未来而不是阻塞当前线程。
等待
暂停执行,直到未来已准备好。
打破
提前退出循环或标记块。
常数
编译时常量、编译时块、编译时可计算函数和原始指针。
持续
跳到循环的下一个迭代。
机箱
Rust二进制文件或库。
动态
动态是的前缀trait对象的类型。
其他的
如果条件的计算结果为.
枚举
一种类型,可以是多种变体中的任何一种。
外部
链接或导入外部代码。
类型为的值布尔表示逻辑.
fn公司
函数或函数指针。
对于
使用迭代在里面,特征实现执行,或高等级特征界限(对于<'a>).
如果
如果条件成立,则评估块。
执行
类型或实现某些功能的类型的功能实现。
在里面
使用迭代一系列值对于.
将值绑定到变量。
无限循环。
比赛
基于模式匹配的控制流。
国防部
将代码组织到模块.
移动
捕获关闭的环境价值。
多用途终端
可变变量、引用或指针。
酒吧
使项目对其他人可见。
裁判
模式匹配期间通过引用绑定。
返回
从函数中返回值。
自己
方法的接收器或当前模块。
静止的
静态项是一个值,在您的程序(a'静态寿命)。
结构
由其他类型组成的类型。
超级的
当前的父级模块.
特质
一组类型的通用接口。
真的
类型为的值布尔表示逻辑真的.
类型
定义别名对于现有类型。
联盟
这个C型接头的锈蚀当量.
不安全的
其代码或接口存储器安全无法通过类型验证系统。
使用
从其他板条箱或模块导入或重命名项目,使用符合人体工程学的克隆值语义,或使用指定精确捕获使用<。.>.
哪里
添加使用物品时必须遵守的约束。
虽然
保持状态时循环。