📝 Rust教程
67篇技术文档📅  最后修改于: 2020-11-02 04:17:22        🧑  作者: Mango
将变量的所有权传递给另一个函数然后返回所有权是非常不便的。 Rust支持借用的概念,其中值的所有权临时转移到实体,然后又返回到原始所有者实体。考虑以下内容-主要函数调用函数print_vector()。将向量作为参数传递给此函数。向量的所有权也从main()传递给print_vector()函数。当main()函数尝试访问向量v时,以上代码将导致如下所示的错误。这是因为一旦所有权转移到另一个函数,...
📅  最后修改于: 2020-11-02 04:17:43        🧑  作者: Mango
切片是指向内存块的指针。切片可用于访问存储在连续内存块中的数据部分。它可以与数组,向量和字符串之类的数据结构一起使用。切片使用索引号访问部分数据。切片的大小在运行时确定。切片是指向实际数据的指针。它们通过引用传递给函数,也称为借用。例如,切片可用于获取字符串值的一部分。切片的字符串是指向实际字符串对象的指针。因此,我们需要指定字符串的开始和结束索引。索引从0开始,就像数组一样。句法最小索引值为0,...
📅  最后修改于: 2020-11-02 04:18:20        🧑  作者: Mango
数组用于表示值的同质集合。类似地,结构是Rust中可用的另一种用户定义的数据类型,它使我们能够组合不同类型的数据项,包括另一种结构。结构将数据定义为键值对。语法-声明结构struct关键字用于声明结构。由于结构是静态类型的,因此结构中的每个字段都必须与数据类型相关联。结构的命名规则和约定类似于变量的命名规则和约定。结构块必须以分号结尾。语法-初始化结构声明结构后,应为每个字段分配一个值。这称为初始...
📅  最后修改于: 2020-11-02 04:18:49        🧑  作者: Mango
在Rust编程中,当我们必须从可能的变体列表中选择一个值时,我们使用枚举数据类型。使用enum关键字声明枚举类型。以下是enum的语法-插图:使用枚举该示例声明一个枚举-GenderCategory,其变体形式为Male和Female。打印!宏显示枚举的值。编译器将针对GenderCategory未实现特征std :: fmt :: Debug引发错误。属性#[derive(Debug)]用于抑制...
📅  最后修改于: 2020-11-02 04:19:29        🧑  作者: Mango
逻辑代码组称为模块。多个模块被编译成一个称为crate的单元。 Rust程序可能包含二进制条板箱或库条板箱。二进制条板箱是具有main()方法的可执行项目。库箱是一组可以在其他项目中重用的组件。与二进制条板箱不同,库条板箱没有入口点(main()方法)。货物工具用于管理Rust中的箱子。例如,网络模块包含与网络相关的功能,图形模块包含与绘图相关的功能。模块类似于其他编程语言中的名称空间。可以使用c...
📅  最后修改于: 2020-11-02 04:20:43        🧑  作者: Mango
Rust的标准集合库提供了最常见的通用编程数据结构的有效实现。本章讨论常用集合的实现-Vector,HashMap和HashSet。向量Vector是可调整大小的数组。它将值存储在连续的存储块中。预定义的结构Vec可用于创建矢量。向量的一些重要特征是-向量可以在运行时增长或收缩。向量是同构集合。向量以特定顺序将数据存储为元素序列。向量中的每个元素都分配有唯一的索引号。索引从0开始到n-1,其中n是...
📅  最后修改于: 2020-11-02 04:21:23        🧑  作者: Mango
在Rust中,错误可以分为两大类,如下表所示。Sr.NoName & DescriptionUsage1RecoverableErrors which can be handledResult enum2UnRecoverableErrors which cannot be handledpanic macro可恢复的错误是可以纠正的错误。当程序遇到可恢复的错误时,它可以重试失败的操作或指定备用操...
📅  最后修改于: 2020-11-02 04:21:48        🧑  作者: Mango
泛型是一种为具有不同类型的多个上下文编写代码的工具。在Rust中,泛型是指数据类型和特征的参数化。泛型可以通过减少代码重复并提供类型安全性来编写更简洁明了的代码。泛型的概念可以应用于方法,功能,结构,枚举,集合和特征。<T>语法称为类型参数,用于声明泛型构造。T代表任何数据类型。插图:通用集合以下示例声明一个只能存储整数的向量。输出考虑以下代码片段-上面的示例显示整数类型的向量只能存储整数值。因此...
📅  最后修改于: 2020-11-02 04:22:18        🧑  作者: Mango
本章讨论如何接受来自标准输入(键盘)的值以及如何将值显示到标准输出(控制台)。在本章中,我们还将讨论传递命令行参数。读者和作家类型Rust的输入和输出标准库功能围绕两个特征进行组织-读写Sr.NoTrait & DescriptionExample1ReadTypes that implement Read have methods for byte-oriented input. They’re...
📅  最后修改于: 2020-11-02 04:22:46        🧑  作者: Mango
除了对控制台进行读写之外,Rust还允许对文件进行读写。File结构代表一个文件。它允许程序对文件执行读写操作。 File结构中的所有方法都返回io :: Result枚举的变体。下表列出了File结构的常用方法-Sr.NoModuleMethodSignatureDescription1std::fs::Fileopen()pub fn open<P: AsRef>(path: P) -> Re...
📅  最后修改于: 2020-11-02 04:23:16        🧑  作者: Mango
Cargo是RUST的包裹经理。这就像一个工具,并管理Rust项目。下表列出了一些常用的货运命令-Sr.NoCommand & Description1cargo buildCompiles the current project.2cargo checkAnalyzes the current project and report errors, but don’t build object f...
📅  最后修改于: 2020-11-02 04:23:46        🧑  作者: Mango
在本章中,我们将学习RUST中的迭代器和闭包如何工作。迭代器迭代器有助于迭代值的集合,例如数组,向量,地图等。迭代器实现Rust标准库中定义的Iterator trait。iter()方法返回集合的迭代器对象。迭代器对象中的值称为项目。迭代器的next()方法可用于遍历项目。当到达集合的末尾时,next()方法将返回值None。下面的示例使用迭代器从数组中读取值。输出如果类似array或Vecto...
📅  最后修改于: 2020-11-02 04:24:10        🧑  作者: Mango
Rust默认情况下在堆栈上分配所有内容。您可以通过将它们包装在Box之类的智能指针中来将它们存储在堆上。 Vec和String之类的类型隐式帮助堆分配。智能指针实现下表中列出的特征。智能指针的这些特征将它们与普通结构区分开来-Sr.NoTrait namePackage & Description1Derefstd::ops::DerefUsed for immutable dereferenci...
📅  最后修改于: 2020-11-02 04:24:32        🧑  作者: Mango
在并发编程中,程序的不同部分独立执行。另一方面,在并行编程中,程序的不同部分同时执行。随着越来越多的计算机利用其多个处理器,这两个模型同样重要。线程数我们可以使用线程同时运行代码。在当前的操作系统中,已执行程序的代码在一个进程中运行,并且操作系统一次管理多个进程。在您的程序中,您还可以具有可以同时运行的独立部分。运行这些独立部分的功能称为线程。创建一个线程thread :: spawn函数用于创建...
📅  最后修改于: 2020-11-02 04:24:50        🧑  作者: Mango
以下资源包含有关Rust的其他信息。请使用它们来获得有关此方面的更深入的知识。Rust的有用链接Rust–Rust的官方网站Rust @ Wikipedia-Rust,其历史和其他各种术语已经用简单的语言进行了解释。关于Rust的有用书籍要在此页面上注册您的网站,请发送电子邮件至contact@tutorialspoint.com...