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来访问 .
使用拥有/ownedString来构造和可变字符串
要转换为字符串,请使用 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 |
符合条件时循环 |