我希望学习 Rust 时知道的三件事

我希望学习 Rust 时知道的三件事

在 Screenleap,我们在生产中运行 Rust,但我觉得我仍然只触及了该语言的表面。希望你能像我一样喜欢学习 Rust。

学习时间比大多数语言都要长

作为专业程序员,我们期望每隔几年学习一门新语言,而且通常不会花很长时间。学习 Rust 对我来说是不同的,原因有以下三个:

  1. Rust 是一门大语言。官方书有500多页,要跳过不少。

  2. 它引入了新概念:Ownership, Lifetimes, Traits。这些不是我使用过的任何其他语言的。

  3. 它使其他语言隐藏的东西变得明确。在其他语言中,您可以愉快地传递值并从任何地方更改它们。该语言在内部做了很多事情以使其为您服务。 Rust 让你可以控制这些事情。如果您有 C++ 背景,这部分对您来说会更容易。

好消息是这里有学习 Rust 的优秀资源,以及一个非常有帮助的社区。offical Rust Book 是理想的起点。 Rust By Example 也给了我很多帮助。

标准库很小,您将需要依赖项

学习一门语言也意味着学习它的标准库,所以一开始我会尽量避免依赖。这在 Rust 中是不可能的。

大多数项目都使用几个半官方的crates,您可以认为它们是标准库。示例包括: log, chrono, rand, clap, reqwest and serde.

一旦我接受标准库不包含电池,我发现很容易识别我需要的库。 Rust Cookbook是一个值得一看的好地方,crates.io 上下载次数最多的crate也可以。

很多行为都属于Trait

在 Rust 中,很多方法并不在对象本身上,而是通过Trait添加的。在这种情况下,将Trait视为混合(mix-in),一种向现有对象添加行为(方法)的方法。

这可能会导致很难找到您需要的方法。例如,File 对象没有明显的读取或写入方法。您必须查看“Trait Implements”下的内容,展开“Read”trait,最后展开“Showhidden undocumented items”

当您导入trait时,方法将出现在您的对象上。如果您有 File 结构,则在导入附加这些方法的特征 ( use std::io::Read ) 之前,您无法从中读取任何内容。有时您会看到无法调用的类型上的代码调用方法(甚至是内置的类型,如 f64 )。那是因为他们正在导入一种你没有的trait。


原文地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值