本文详尽地介绍了 Rust 的所有权、借用及其相关概念,包括 Rust 的复制类型、可变性、泛型、Option 和 Result 等内容。通过示例代码,深入解释了 Rust 的独特语法和其内在逻辑,尤其适合有 Solidity 或 JavaScript 背景的开发者。此外,文章结构清晰,包含代码示例和必要的注释,帮助读者更好地理解 Rust 编程语言。
Rust实战:构建实用的CLI工具HTTPie引言在现代开发中,命令行工具(CLI)因其强大且灵活的特性而广受欢迎。Rust语言凭借其内存安全性和高效性能,正成为构建CLI工具的绝佳选择。在本文中,我们将以构建HTTPie的简化版为例,展示如何使用Rust实现一个功能强大的
最近遇到一个有趣的问题,有人在测试Rust的性能的时候发现Rust比Golang慢竟然一倍
结构体struct是复合数据结构,它是由其它数据类型组合而来。其它语言也有类似的数据结构,不过可能有不同的名称,例如object、record等。
第8条:熟悉引用和指针类型在一般的编程中,引用(reference)是一种间接访问数据结构的方式,它与拥有该数据结构的变量是分开的。在实践中,引用通常由指针(pointer)来实现。指针是一个数字,它的值是数据结构的变量在内存中的地址。现代CPU通常会对指针施加一些限制:内存地
在Rust编程语言中,变量的可变性指的是变量在声明后是否可以改变其值。Rust中的变量默认是不可变的,即一旦赋值后,不能更改其值。要使变量可变,必须使用mut关键字来声明。
这条款项描述了构造器模式:对于复杂的数据类型提供对应的构造器类型buildertype,使得用户可以方便地创造该数据数据类型的实例。Rust要求开发者在创建一个新的struct实例的时候,必须填入struct的所有字段。这样可以保证结构体中永远不会存在未初始化的值,从而保证了代码的安
第6条:拥抱newtype模式第1条描述了元组结构体,它的字段没有名字,而是通过数字(self.0)来引用。本条着重介绍的是,只包含一个类型的元组结构体。它是一个新的类型,可以包含和内置类型一样的值。在Rust中,这个模式非常普遍,它叫做:newtype模式。newtype模
第5条:理解类型转换Rust的类型转换分为三个类别:手动:通过实现From和Intotrait提供的用户定义类型转换半自动:使用as关键字在值之间进行显式转换自动:隐式强制转换为新类型本章节的重点主要是第一种,即手动转换类型,因为后两种大多数情况下不适用于用户定义类
第4条:优先使用惯用的错误类型第3条描述了如何使用标准库为Option和Result类型提供的转换,以允许使用?运算符简洁、惯用地处理结果类型。但它没有讨论如何最好地处理作为Result<T,E>第二个类型参数出现的各种不同的错误类型E;这就是本章节的内容。只有当有多
方法3:避免匹配Option和Result[方法1]阐述了枚举(enum)的优点,并展示了match表达式如何强制程序员考虑所有可能性;这个方法探讨了在某些情况下,你应尽量避免使用match表达式——至少是显式地。[方法1]还介绍了Rust标准库提供的两个无处不在
方法2:使用类型系统表达常见行为[方法1]讨论了如何在类型系统中表达数据结构;本节继续讨论在Rust的类型系统中行为的编码。方法(Methods)在Rust的类型系统中,行为首次出现的地方就是将方法添加到数据结构上:这些方法是对该类型实例的操作,通过self标识。这种方式以
方法1:使用类型系统表达你的数据结构“谁叫他们是程序员,而不是打字员”——@thingskatedid对于来自其他静态类型编程语言(如C++、Go或Java)的人来说,Rust类型系统的基本概念是非常熟悉的。有一系列具有特定大小的整数类型,包括有符号(i8,i16,i32,
文章详细介绍了 Rust 语言中的 attribute-like 和 custom derive 宏的使用方法,通过具体代码示例展示了如何通过宏在编译时修改结构体,并解释了宏的工作原理和实现方式。
本教程详细解释了Rust中函数与函数式宏的区别,并通过代码示例展示了如何使用Rust的函数式宏来处理不同数量的参数。
本教程深入探讨了Solidity和Rust在控制流、数组、映射、结构体和常量等方面的语法对比,旨在帮助掌握Solidity的开发者快速上手Rust编程。
多线程的使用
Box,Deref和Drop trait,Rc<T>和Arc<T>,Cell<T>和RefCell<T>
创建工作空间,使用工作空间
文档注释,发布crate包
扫一扫 - 使用登链小程序
378 篇文章,1929 学分
209 篇文章,370 学分
187 篇文章,334 学分
65 篇文章,271 学分
115 篇文章,235 学分