我已经写了几篇关于 Rust 的文章,包括(最近的)我在 Rust 中最常用的 7 个关键字,我在其中承诺会写一篇后续文章。关键字文章讨论了 std 库 中的关键字,在本文中,我将介绍 Rust prelude 中的一些函数。
当您在 Rust 中创建一个文件并编译它时,您可以(并且经常需要)导入外部模块,通常使用 use 或 extern 关键字。然而,Rust 为您做了一件好事,那就是导入一组有用的模块,而无需您提出要求。这被称为标准 prelude。像往常一样,Rust 文档对 此内容有很好的信息。
以下是我从标准 prelude 中选出的一些我最喜欢的函数:我一直使用的有用的函数,以及一些揭示 Rust 如何“思考”世界的函数。
- clone() – 有时您需要在某个地方使用变量,而 Rust 的内存管理规则使这变得困难。幸运的是,在实现了 std::clone::Clonetrait 的地方(几乎所有地方都实现了),您可以复制到一个新变量。不要仅仅为了绕过 Rust 的内存管理而这样做,它是为了帮助您,但是当您实际上需要某个东西的新副本时,它可能非常有用。
- format!() – 好的,正式来说,这是一个宏而不是一个函数,但它非常有用。您可能知道并使用 println!(),它用于打印到 stdout。format!()对于您不想立即输出的字符串执行几乎相同的操作。
- is_ok() – 老实说,这只是我谈论 std::result::Result的借口,它非常有用,允许您创建和访问成功 (Ok) 或失败 (Err) 结果。is_ok()函数会告诉您您拥有的是否是 Ok 结果(并记住“k”是小写——可能是我编写 Rust 时最常见的语法错误)。为了正确理解 Rust,您需要理解Result。它被广泛使用,您也应该使用它。
- is_some() – 与 Result 类似,std::option::Option是您在编写 Rust 时可能会经常使用的东西。鉴于没有像您在许多其他语言中使用的Null等价物,当您没有生成要返回的值时,您可以做什么?答案是您可以使用Option,您可以为其提供None值;在其他情况下,您可以在Some()包装器中提供一个值。is_some()函数检查是否有值——如果有,您可以使用unwrap()函数来访问它(见下文)。与Result一样,习惯于使用Option,因为您会在各处看到它。
- iter() – 许多不同的集合可以被迭代,iter()函数允许您非常简单地访问所有值。您有时可能想使用相关的函数into_iter()和iter_mut()(用于可变值,不足为奇),但iter()是您最常用的,并且您可以将各种有用的函数链接到它上面。
- panic!() – 有时您的程序会获得不应该获得的输入或生成不应该生成的输出。当 std::result::Result不够好,并且您无法通过执行堆栈传播错误时,因为这不是应该处理的那种错误,您可以强制您的程序使用panic!()(如果我诚实的话,这是另一个宏)停止,并添加一条错误消息以提供更多信息。
- unwrap() – 如果您有一个 std::option::Option或一个std::result::Result,并且您想访问它包含的内容,那么您将需要使用unwrap(),如果出现问题,它会 panic(如果您想能够添加特定消息,则使用expect())。
这是一篇相当基础的文章,但如果它对开始了解 Rust 的人们有用,那么我很高兴。我计划继续研究 Rust 中一些更基本的语言组件和一些基本的陷阱,所以请密切关注。
本文最初发表在 Alice, Eve, and Bob 上,并经作者许可转载。
 
 
 
 
 
 

评论已关闭。