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. 模块的文档通常包括模块概述和示例,是开始熟悉该库的明智之地.

其次,此处记录了 原生类型的隐式方法. 造成混淆的原因有两个:

  1. 由编译器实现原语时,标准库直接在原生类型上实现方法(这是唯一这样做的库), 该方法在原生类型.部分中进行了介绍
  2. 标准库导出了许多 与原生类型同名的模块,这些定义了与原生类型相关的其他项,但没有定义所有重要方法.

因此,例如 有一个原始类型 i32 页面 , 列出了可以在32位整数上调用的所有方法 (非常有用), 而 有一个模块 std::i32 页面, 记录了常量值 MINMAX (非常有用).

请注意原生strT(也称为 "切片" )的文档. 通过deref.强制, 对StringVec<T> 的许多方法调用实际上分别是对 strT 上的方法的调用.

第三,标准库定义了 Rust前导, 这是一小部分项(主要是特质)的集合- 这些项被导入到每个 Crate 的每个模块中。前导中的特质无处不在,这使t前导文档成为学习标准库的一个很好的切入点

最后,标准库导出许多标准宏,并在此页上列出它们 (从技术上讲,并非所有标准宏都由标准库定义-有些是由编译器定义的,但与此处记录的内容相同) 像前导一样,默认情况下,标准宏会导入所有 Crate 中

对文档进行更改

此处查看Rust贡献准则。 该文档的源代码可以在Github上找到。要做出更改,请确保您先阅读准则,然后提交建议更改的请求。

感谢您的贡献!如果您发现文档中的一部分可以改进,请提交PR, 或首先在irc.mozilla.org#rust-docs上与我们交流.

Rust标准库之旅

本文档的其余部分专用于说明Rust标准库的显着功能

容器和集合

optionresult 模块定义可选和错误处理的类型 : Option<T>Result<T, E>. iter 模块定义Rust的迭代器特质 Iterator, 与for 循环一起使用以访问集合.

T标准库公开了三种处理内存连续区域的常用方法:

切片只能通过某种指针来处理,因此有多种形式,例如:

str, UTF-8字符串切片是一种原始类型, 标准库为此定义了许多方法. Rust str通常被当作不可变的引用: &str来访问 . 使用拥有/ownedString来构造和可变字符串

要转换为字符串,请使用 format! 宏;要从字符串转换,请使用 FromStr 特质.

可以通过将数据放在引用计数 box 或 Rc 类型中来共享数据, 如果进一步包含在 CellRefCell ,则可以对其进行突变和共享. 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 进一步包含其他原始共享内存类型, 包括 atomicmpsc, 其中包含用于消息传递的通道类型.

Re-exports

pub use core::arch;

Primitive Types

array

一个固定大小的数组, 表示为[T; N],即元素类型T, 和非负编译时常量N.

bool

布尔类型

char

字符类型

f32

32位浮点类型

f64

64位浮点类型

fn

函数指针,如 fn(usize) -> bool.

i8

8位带符号整数类型

i16

16位带符号整数类型

i32

32位带符号整数类型

i64

64位带符号整数类型

i128

128位带符号整数类型

isize

指针大小的有符号整数类型

pointer

原始的,不安全的指针*const T, 和 *mut T.

reference

共享和可变引用

slice

具有动态尺寸视图的连续序列[T]

str

字符切片

tuple

有限的异构序列(T, U, ..).

u8

8位无符号整数类型

u16

16位无符号整数类型

u32

32位无符号整数类型

u64

64位无符号整数类型

u128

128位无符号整数类型

unit

() 类型,有时被称为"单元" 或 "无"

usize

指针大小的无符号整数类型

never Experimental

! 类型,也被称为"永不"

Modules

alloc

内存分配APIs

any

该模块实现了Any特质,该特质允许通过运行时反射来动态键入任何'static 类型

array

定长数组的 Eq 之类的实现. 限制到一定长度。 最终我们应该能够扩展到所有长度。

ascii

ASCII字符串和字符的操作

borrow

A module for working with borrowed data.

boxed

A pointer type for heap allocation.

cell

共享可变容器

char

字符类型

clone

无法隐式复制类型的Clone特质

cmp

排序和比较的功能

collections

集合类型

convert

类型之间转换的特质

default

类型的默认值可能具有意义的Default特质

env

检查和管理进程的环境

error

处理错误的特质

f32

该模块提供特定于f32浮点数据类型实现的常量

f64

该模块提供特定于f64浮点数据类型实现的常量

ffi

格式化和打印 String的实用工具

fmt

Utilities for formatting and printing Strings.

fs

文件系统管理操作

future

异步值

hash

通用哈希支持

hint

对编译器的提示,该提示会影响应如何发出或优化代码

i8

8位带符号整数类型

i16

16位带符号整数类型

i32

32位带符号整数类型

i64

64位带符号整数类型

i128

128位带符号整数类型

io

核心 I / O功能的特质,帮助程序和类型定义

isize

指针大小的有符号整数类型

iter

可组合外部迭代

marker

原始特质和类型的类型基本属性表现

mem

处理内存的基本功能

net

TCP/UDP 通信的网络原语

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

Result 类型错误处理

slice

A dynamically-sized view into a contiguous sequence, [T].

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 Vec<T>.

backtrace Experimental

支持捕获OS线程的堆栈回溯

intrinsics Experimental

Compiler intrinsics.

raw Experimental

包含用于编译器内置类型布局的结构定义

Macros

assert

运行时断言布尔表达式在为 true

assert_eq

断言两个表达式彼此相等(使用 PartialEq

assert_ne

断言两个表达式彼此不相等(使用PartialEq

cfg

在编译时评估配置标志的布尔组合

column

扩展为调用它的列号

compile_error

当导致编译失败时,给定的错误消息

concat

Concatenates literals into a static string slice.

dbg

打印并返回给定表达式的值,以进行快速和脏调试

debug_assert

运行时断言布尔表达式在为 true

debug_assert_eq

断言两个表达式彼此相等

debug_assert_ne

断言两个表达式彼此不相等

env

在编译时检查环境变量.

eprint

打印到标准错误

eprintln

打印到标准错误并换行

file

扩展为调用它的文件名

format

Creates a String using interpolation of runtime expressions.

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.

print

打印到标准输出

println

打印到标准错误并换行

stringify

对其参数进行字符串化

thread_local

Declare a new thread local storage key of type std::thread::LocalKey.

todo

表示未完成的代码

try Deprecated

展开result或传播其错误

unimplemented

Panic并显示“尚未实现”信息,表示未完成的代码

unreachable

表示无法访问的代码

vec

Creates a Vec containing the arguments.

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_aarch64_feature_detected is used somewhere else than aarch64 targets.

is_arm_feature_detected Experimental

Prevents compilation if is_arm_feature_detected is used somewhere else than ARM targets.

is_mips64_feature_detected Experimental

Prevents compilation if is_mips64_feature_detected is used somewhere else than MIPS64 targets.

is_mips_feature_detected Experimental

Prevents compilation if is_mips_feature_detected is used somewhere else than MIPS targets.

is_powerpc64_feature_detected Experimental

Prevents compilation if is_powerpc64_feature_detected is used somewhere else than PowerPC64 targets.

is_powerpc_feature_detected Experimental

Prevents compilation if is_powerpc_feature_detected is used somewhere else than PowerPC targets.

log_syntax Experimental

将传递的令牌打印到标准输出中

matches Experimental

返回与任何给定模式匹配的表达式 Returns whether the given expression matches any of the given patterns.

trace_macros Experimental

启用或禁用用于调试其他宏的跟踪功能

Keywords

Self

含有traitimpl 块的实现类型, 或含有类型定义的当前类型

as

类型间转换,或重命名导入

async

返回 Future 而不是阻塞当前线程

await

暂停执行,直到 Future 准备好结果

break

从循环中提前退出

const

编译时常量和确定性函数

continue

跳到循环的下一个迭代

crate

Rust二进制文件或库

dyn

命名特质对象的类型

else

if 条件不成立时该怎么办

enum

一种类型,可以是多种变体中的任何一种

extern

链接到或导入外部代码

false

一个bool 表示逻辑 false的类型的值

fn

函数或函数指针

for

Iteration with in, trait implementation with impl, or higher-ranked trait bounds ( for<'a>).

if

如果条件成立,则执行块

impl

为类型实现一些功能

in

for使用迭代一系列值

let

将值绑定到变量

loop

无限循环

match

基于模式匹配的控制流

mod

将代码组织到模块中.

move

通过值捕获闭包环境

mut

可变的绑定,引用或指针

pub

使其可见

ref

在模式匹配期间按引用绑定

return

从函数返回值

self

方法的接收者,或当前模块

static

在程序期间有效。

struct

由其他类型组成的类型

super

当前模块的父级

trait

一类类型的通用接口

true

一个 bool 表示逻辑 true的类型的值

type

为现有类型定义别名

union

Rust中相当于C风格的 union.

unsafe

类型系统无法验证其内存安全 性的代码或接口

use

从其他 Crate 或模块导入或重命名项

where

添加使用项必须保持的约束。

while

符合条件时循环