Linux中國
我的 7 大 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,它用於從函數中返回一個值,但是如果你只是在函數的最後一行提供值(或提供返回值的函數),通常會變得更簡單,能更清晰地閱讀。警告:在很多情況下,你 會 忘記省略這一行末尾的分號(;),如果你這樣做,編譯器會不高興的。unsafe– 如其意:如果你想做一些不能保證 Rust 內存安全的事情,那麼你就需要使用這個關鍵字。我絕對無意在現在或將來的任何時候宣布我的任何 Rust 代碼不安全;Rust 如此友好的原因之一是它阻止了這種黑客行為。如果你真的需要這樣做,再想想,再想想,然後重新設計代碼。除非你是一個非常低級的系統程序員,否則要 避免 使用unsafe。use– 當你想使用另一個 crate 中的東西時,例如結構體、變數、函數等,那麼你需要在你要使用它的代碼的代碼塊的開頭聲明它。另一個常見的錯誤是,你這樣做了,但沒有在Cargo.toml文件中添加該 crate (最好有一個最小版本號)。
我知道,這不是我寫過的最複雜的文章,但這是我在開始學習 Rust 時會欣賞的那種文章。我計劃在關鍵函數和其他 Rust 必知知識方面編寫類似的文章:如果你有任何要求,請告訴我!
本文最初發表於 Alice, Eve, and Bob 經作者許可轉載。
via: https://opensource.com/article/20/10/keywords-rust
作者:Mike Bursell 選題:lujun9972 譯者:mcfd 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive
對這篇文章感覺如何?
太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
More in:Linux中國
捐贈 Let's Encrypt,共建安全的互聯網
隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
Let's Encrypt 正式發布,已經保護 380 萬個域名
由於 Let's Encrypt 讓安裝 X.509 TLS 證書變得非常簡單,所以這個數量增長迅猛。
關於Linux防火牆iptables的面試問答
Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
Lets Encrypt 已被所有主流瀏覽器所信任
旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...

















