从Rust标准库中学习一些有用的关键字。我已经使用Rust几个月了,写的比我预期的要多——尽管据我所知,我已经改进了我写的代码并完成了一些比我最初预期的更复杂的任务,相当多被扔掉了。我仍然喜欢它,并且认为谈论一些在Rust中重复出现的重要关键字可能会有所帮助。我将提供我自己对它们的作用的总结:为什么你需要考虑如何使用它们,以及任何其他有用的东西,特别是对于Rust新手或来自其他语言(如Java;请阅读我的文章为什么我爱作为Java程序员学习Rust)。事不宜迟,让我们开始吧。获取更多信息的好地方始终是官方Rust文档——您可能想从std标准库开始。const-你可以使用const来声明常量,你应该这么做。虽然这不是制造火箭,但请使用const。如果你想在不同的模块中使用常量,请创建一个lib.rs文件(Rust默认),你可以将所有常量放在一个命名良好的模块中。我在不同模块的不同文件中遇到过const变量名称(和值)冲突,仅仅是因为我太懒了,除了在不同文件中剪切和粘贴之外,我可以通过创建共享模块来完成节省很多工作的。let-你并不总是需要用let语句来声明一个变量,但是当你这样做时你的代码会更清晰。另外,如果可以的话,一定要添加变量类型。Rust会尽最大努力猜测它应该是什么类型的变量,但它并不总是能够在运行时做到这一点(在这种情况下,编译器Cargo会提示你),它甚至可能无法做到你期望那样。在后一种情况下,Cargo更容易抱怨你分配给(例如)的函数与声明不匹配,而不是Rust试图帮助你做错事并且你必须花费大量时间在其他地方调试它.match-match对我来说是新的,我喜欢使用它。它与其他编程语言中的switch没有什么不同,但它在Rust中被广泛使用。它使代码更清晰、更易于阅读,如果你做了一些愚蠢的事情(比如遗漏了一些可能的情况),Cargo会很好地提示你。我的一般经验法则是,如果您可以在管理不同的选项或分支时使用match,则一定要使用它。mut–当声明一个变量时,如果它的值在声明后会改变,那么你需要声明它是可变的(LCTT译注:Rust中的变量默认是不可变的)。一个常见的错误是在变量不改变时声明它是可变的,编译器会警告你。如果您从Cargo收到一个警告,指出您认为某个可变变量没有被更改,您可能需要检查该变量的范围并确保您使用的是正确的变量。return-我实际上很少使用return,它用于从函数返回一个值,但如果您只是在函数的最后一行仔细阅读提供值(或返回值的函数),通常会更简单、更清晰。警告:在许多情况下,您会忘记省略该行末尾的分号(;),如果您这样做,编译器将不会高兴。不安全——正如它所说:如果你想做一些在Rust中不能保证内存安全的事情,那么你需要使用这个关键字。我绝对无意现在或将来任何时候宣布我的任何Rust代码不安全;Rust如此友好的原因之一是它不鼓励这种黑客攻击。如果真的需要这样做,再想一想,再想一想,重新设计代码。避免不安全,除非你是一个非常低级的系统程序员。use-当你想使用来自另一个crate的东西时,比如结构、变量、函数等,那么你需要在你想要使用它的代码块的开头声明它。另一个常见的错误是您没有在Cargo.toml文件中添加包装箱(最好使用最小版本号)。我知道,这不是我写过的最复杂的文章,但它是我在开始学习Rust时会欣赏的那种文章。我计划写一篇关于关键功能和其他Rust必须知道的类似文章:如果您有任何要求,请告诉我!
