1.0.0[−][src]Std库 翻译
Rust标准库
Rust标准库是可移植Rust软件的基础,Rust软件是针对更广泛的Rust生态系统.的一组最小且经过测试的共享抽象. 它提供了诸如Vec<T>
和 Option<T>
之类的核心
类型, 对
语言原语的库定义操作, 标准宏, I/O 和 多线程, 等等.
Std
默认情况下可用于所有Rust库. 因此, 标准库可以在 use
语句 通过 std路径访问, 就像使用use std::env
一样.
如何阅读本文档
如果您已经知道要查找的名称,最快的查找方法是使用页面顶部的 搜索栏 .
否则,您可能要跳到以下有用的部分之一:
如果这是您第一次来,那么标准库的文档随意阅读。单击有趣的事物通常会把您带到 有趣的地方。 尽管如此,您还是不想错过一些重要的内容,因此请继续阅读标准库及其文档!
一旦您熟悉了标准库的内容,您可能会发现散文使人分心。在开发的此阶段,您可能 需要按页面顶部附近的[-] 按钮以将其折叠为更可浏览的视图。
当您查看该 [-]
按钮时,也请注意该 [src]
按钮。Rust的API文档带
有源代码,建议您阅读。标准库资源通常是高质量的,幕后的偷看常常会启发人
标准库文档中有什么?
首先,Rust标准库分为多个重点模块, 所有内容都在此页面的下方列出. 这些模块是所有Rus构造的基石.
它们的名称很强大,例如
std::slice
and std::cmp
. 模块的文档通常包括模块概述和示例,是开始熟悉该库的明智之地.
其次,此处记录了 原生类型的隐式方法. 造成混淆的原因有两个:
- 由编译器实现原语时,标准库直接在原生类型上实现方法(这是唯一这样做的库), 该方法在原生类型.部分中进行了介绍
- 标准库导出了许多 与原生类型同名的模块,这些定义了与原生类型相关的其他项,但没有定义所有重要方法.
因此,例如 有一个原始类型 i32
页面 , 列出了可以在32位整数上调用的所有方法 (非常有用), 而
有一个模块
std::i32 页面, 记录了常量值 MIN
和
MAX
(非常有用).
请注意原生str
和 T
(也称为 "切片" )的文档. 通过deref.强制, 对String
和
Vec<T>
的许多方法调用实际上分别是对 str
和 T
上的方法的调用.
第三,标准库定义了 Rust前导, 这是一小部分项(主要是特质)的集合- 这些项被导入到每个 Crate 的每个模块中。前导中的特质无处不在,这使t前导文档成为学习标准库的一个很好的切入点
最后,标准库导出许多标准宏,并在此页上列出它们 (从技术上讲,并非所有标准宏都由标准库定义-有些是由编译器定义的,但与此处记录的内容相同) 像前导一样,默认情况下,标准宏会导入所有 Crate 中
对文档进行更改
在此处查看Rust贡献准则。 该文档的源代码可以在Github上找到。要做出更改,请确保您先阅读准则,然后提交建议更改的请求。
感谢您的贡献!如果您发现文档中的一部分可以改进,请提交PR, 或首先在irc.mozilla.org#rust-docs上与我们交流.
Rust标准库之旅
本文档的其余部分专用于说明Rust标准库的显着功能
容器和集合
option
和 result
模块定义可选和错误处理的类型 : Option<T>
和 Result<T, E>
. iter
模块定义Rust的迭代器特质 Iterator
, 与for
循环一起使用以访问集合.
T标准库公开了三种处理内存连续区域的常用方法:
切片只能通过某种指针来处理,因此有多种形式,例如:
&[T]
- 共享切片&mut [T]
- 可变切片Box<[T]>
- 拥有切片
str
, UTF-8字符串切片是一种原始类型, 标准库为此定义了许多方法. Rust str
通常被当作不可变的引用: &str
来访问 .
使用拥有/owned
String
来构造和可变字符串
要转换为字符串,请使用 format!
宏;要从字符串转换,请使用 FromStr
特质.
可以通过将数据放在引用计数 box 或 Rc
类型中来共享数据, 如果进一步包含在 Cell
或 RefCell
,则可以对其进行突变和共享.
Likewise, in a concurrent setting it is common to pair an
atomically-reference-counted box,
Arc
, with a Mutex
to get the same
effect.
该collections
模块定义了 maps , sets , linked lists
和其他典型的集合类型,包括 HashMap<K, V>
.
平台抽象和 I/O
除了基本数据类型外,标准库还主要关注常见平台(尤其是Windows和Unix派生)中的差异的抽象
常见类型的 I/O, 包括 files, TCP, UDP, 在被定义在 io
, fs
, 和 net
模块.
该 thread
模块包含Rust的线程抽象. sync
进一步包含其他原始共享内存类型, 包括 atomic
和 mpsc
, 其中包含用于消息传递的通道类型.
Re-exports
pub use core::arch;
|
Primitive Types
array |
一个固定大小的数组, 表示为 |
bool |
布尔类型 |
char |
字符类型 |
f32 |
32位浮点类型 |
f64 |
64位浮点类型 |
fn |
函数指针,如 |
i8 |
8位带符号整数类型 |
i16 |
16位带符号整数类型 |
i32 |
32位带符号整数类型 |
i64 |
64位带符号整数类型 |
i128 |
128位带符号整数类型 |
isize |
指针大小的有符号整数类型 |
pointer |
原始的,不安全的指针 |
reference |
共享和可变引用 |
slice |
具有动态尺寸视图的连续序列 |
str |
字符切片 |
tuple |
有限的异构序列 |
u8 |
8位无符号整数类型 |
u16 |
16位无符号整数类型 |
u32 |
32位无符号整数类型 |
u64 |
64位无符号整数类型 |
u128 |
128位无符号整数类型 |
unit |
|
usize |
指针大小的无符号整数类型 |
never |
Experimental
|
Modules
alloc |
内存分配APIs |
any |
该模块实现了 |
array |
定长数组的 |
ascii |
ASCII字符串和字符的操作 |
borrow |
A module for working with borrowed data. |
boxed |
A pointer type for heap allocation. |
cell |
共享可变容器 |
char |
字符类型 |
clone |
无法 |
cmp |
排序和比较的功能 |
collections |
集合类型 |
convert |
类型之间转换的特质 |
default |
类型的默认值可能具有意义的 |
env |
检查和管理进程的环境 |
error |
处理错误的特质 |
f32 |
该模块提供特定于 |
f64 |
该模块提供特定于 |
ffi |
格式化和打印 String的实用工具 |
fmt |
Utilities for formatting and printing |
fs |
文件系统管理操作 |
future |
异步值 |
hash |
通用哈希支持 |
hint |
对编译器的提示,该提示会影响应如何发出或优化代码 |
i8 |
8位带符号整数类型 |
i16 |
16位带符号整数类型 |
i32 |
32位带符号整数类型 |
i64 |
64位带符号整数类型 |
i128 |
128位带符号整数类型 |
io |
核心 I / O功能的特质,帮助程序和类型定义 |
isize |
指针大小的有符号整数类型 |
iter |
可组合外部迭代 |
marker |
原始特质和类型的类型基本属性表现 |
mem |
处理内存的基本功能 |
net |
|
num |
数字的附加功能 |
ops |
可重载运算符 |
option |
可选值 |
os |
特定于操作系统的功能 |
panic |
标准库中的恐慌/故障支持 |
path |
跨平台路径操作 |
pin |
将数据固定到其在内存中位置的类型 |
prelude |
Rust前导 |
process |
进程处理模块 |
ptr |
Manually manage memory through raw pointers. |
rc |
Single-threaded reference-counting pointers. 'Rc' stands for 'Reference Counted'. |
result |
|
slice |
A dynamically-sized view into a contiguous sequence, |
str |
Unicode string slices. |
string |
A UTF-8 encoded, growable string. |
sync |
有用的同步原语 |
task |
Types and Traits for working with asynchronous tasks. |
thread |
原生线程 |
time |
时间量化 |
u8 |
8位无符号整数类型 |
u16 |
16位无符号整数类型 |
u32 |
32位无符号整数类型 |
u64 |
64位无符号整数类型 |
u128 |
128位无符号整数类型 |
usize |
指针大小的无符号整数类型 |
vec |
A contiguous growable array type with heap-allocated contents, written
|
backtrace |
Experimental
支持捕获OS线程的堆栈回溯 |
intrinsics |
Experimental
Compiler intrinsics. |
raw |
Experimental
包含用于编译器内置类型布局的结构定义 |
Macros
assert |
运行时断言布尔表达式在为 |
assert_eq |
断言两个表达式彼此相等(使用 |
assert_ne |
断言两个表达式彼此不相等(使用 |
cfg |
在编译时评估配置标志的布尔组合 |
column |
扩展为调用它的列号 |
compile_error |
当导致编译失败时,给定的错误消息 |
concat |
Concatenates literals into a static string slice. |
dbg |
打印并返回给定表达式的值,以进行快速和脏调试 |
debug_assert |
运行时断言布尔表达式在为 |
debug_assert_eq |
断言两个表达式彼此相等 |
debug_assert_ne |
断言两个表达式彼此不相等 |
env |
在编译时检查环境变量. |
eprint |
打印到标准错误 |
eprintln |
打印到标准错误并换行 |
file |
扩展为调用它的文件名 |
format |
Creates a |
format_args |
字符串格式宏的构造参数 |
include |
根据上下文将文件解析为表达式或项 |
include_bytes |
包含一个文件,作为对字节数组的引用 |
include_str |
包含一个utf8编码的文件作为字符串 |
is_x86_feature_detected |
A macro to test at runtime whether a CPU feature is available on x86/x86-64 platforms. |
line |
Expands to the line number on which it was invoked. |
module_path |
扩展为表示当前模块路径的字符串 |
option_env |
可选的在编译时检查环境变量。 |
panic |
Panics the current thread. |
打印到标准输出 |
|
println |
打印到标准错误并换行 |
stringify |
对其参数进行字符串化 |
thread_local |
Declare a new thread local storage key of type |
todo |
表示未完成的代码 |
try |
Deprecated
展开 |
unimplemented |
Panic并显示“尚未实现”信息,表示未完成的代码 |
unreachable |
表示无法访问的代码 |
vec |
Creates a |
write |
将格式化的数据写入缓冲区 |
writeln |
将格式化的数据写入缓冲区并换行 |
asm |
Experimental
内联汇编 |
concat_idents |
Experimental
将多个标识符连接成一个标识符 |
format_args_nl |
Experimental
与format_args相同,但最后添加一个换行符 |
global_asm |
Experimental
模块级内联汇编 |
is_aarch64_feature_detected |
Experimental
Prevents compilation if |
is_arm_feature_detected |
Experimental
Prevents compilation if |
is_mips64_feature_detected |
Experimental
Prevents compilation if |
is_mips_feature_detected |
Experimental
Prevents compilation if |
is_powerpc64_feature_detected |
Experimental
Prevents compilation if |
is_powerpc_feature_detected |
Experimental
Prevents compilation if |
log_syntax |
Experimental
将传递的令牌打印到标准输出中 |
matches |
Experimental
返回与任何给定模式匹配的表达式 Returns whether the given expression matches any of the given patterns. |
trace_macros |
Experimental
启用或禁用用于调试其他宏的跟踪功能 |
Keywords
Self | |
as |
类型间转换,或重命名导入 |
async |
返回 |
await |
暂停执行,直到 |
break |
从循环中提前退出 |
const |
编译时常量和确定性函数 |
continue |
跳到循环的下一个迭代 |
crate |
Rust二进制文件或库 |
dyn |
命名特质对象的类型 |
else |
当 |
enum |
一种类型,可以是多种变体中的任何一种 |
extern |
链接到或导入外部代码 |
false |
一个 |
fn |
函数或函数指针 |
for |
Iteration with |
if |
如果条件成立,则执行块 |
impl |
为类型实现一些功能 |
in |
与 |
let |
将值绑定到变量 |
loop |
无限循环 |
match |
基于模式匹配的控制流 |
mod |
将代码组织到模块中. |
move |
通过值捕获闭包环境 |
mut |
可变的绑定,引用或指针 |
pub |
使其可见 |
ref |
在模式匹配期间按引用绑定 |
return |
从函数返回值 |
self |
方法的接收者,或当前模块 |
static |
在程序期间有效。 |
struct |
由其他类型组成的类型 |
super |
当前模块的父级 |
trait |
一类类型的通用接口 |
true |
一个 |
type |
为现有类型定义别名 |
union |
Rust中相当于C风格的 union. |
unsafe |
类型系统无法验证其内存安全 性的代码或接口 |
use |
从其他 |
where |
添加使用项必须保持的约束。 |
while |
符合条件时循环 |