成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我的七大 Rust 關(guān)鍵字

開發(fā) 后端
我使用 Rust 已經(jīng)有幾個月了,寫的東西比我預(yù)期的要多——盡管隨著我的學(xué)習(xí),我改進(jìn)了所寫的代碼,并完成了一些超出我最初意圖的更復(fù)雜的任務(wù),相當(dāng)多的東西已經(jīng)被扔掉了

從 Rust 標(biāo)準(zhǔn)庫學(xué)習(xí)一些有用的關(guān)鍵字。

我使用 Rust 已經(jīng)有幾個月了,寫的東西比我預(yù)期的要多——盡管隨著我的學(xué)習(xí),我改進(jìn)了所寫的代碼,并完成了一些超出我最初意圖的更復(fù)雜的任務(wù),相當(dāng)多的東西已經(jīng)被扔掉了。

我仍然喜歡它,并認(rèn)為談?wù)撘恍┰?Rust 中反復(fù)出現(xiàn)的重要關(guān)鍵字可能會有好處。我會提供我個人對它們的作用的總結(jié):為什么你需要考慮如何使用它們,以及任何其他有用的東西,特別是對于剛接觸 Rust 的新手或來自另一種語言的人(如 Java;請閱讀我的文章 為什么作為一個 Java 程序員的我喜歡學(xué)習(xí) Rust)。

事不宜遲,讓我們開始吧。獲取更多信息的好地方總是 Rust 官方文檔 —— 你可能想從 std 標(biāo)準(zhǔn)庫開始。

const – 你可以用 const 來聲明常量,而且你應(yīng)該這樣做。雖然這不是造火箭,但請一定要用 const ,如果你要在不同的模塊中使用常量,那請創(chuàng)建一個 lib.rs 文件(Rust 默認(rèn)的),你可以把所有的常量放在一個命名良好的模塊中。我曾經(jīng)在不同模塊的不同文件中發(fā)生過 const 變量名(和值)的沖突,僅僅是因為我太懶了,除了在不同文件中剪切和粘貼之外,我本可以通過創(chuàng)建一個共享模塊來節(jié)省大量的工作。

let – 你并不 總是 需要用 let 語句聲明一個變量,但當(dāng)你這樣做時你的代碼會更加清晰。此外,如果可以,請一定要添加變量類型。Rust 會盡最大努力猜測它應(yīng)該是什么類型的變量,但它不一定總能在運行時做到這一點(在這種情況下,編譯器 Cargo 會提示你),它甚至可能做不到你期望的那樣。在后一種情況下,對于 Cargo 來說,抱怨你所賦值的函數(shù)(例如)與聲明不一致,總比 Rust 試圖幫助你做錯事,而你卻不得不在其他地方花費大量時間來進(jìn)行調(diào)試要簡單。

match – match 對我來說是新鮮事物,我喜歡使用它。它與其他編程語言中的 switch 沒有什么不同,但在 Rust 中被廣泛使用。它使代碼更清晰易讀,如果你做了一些愚蠢的事情(例如錯過一些可能的情況),Cargo 會很好地提示你。我一般的經(jīng)驗法則是,在管理不同的選項或進(jìn)行分支時,如果可以使用 match,那就請一定要使用它。

mut – 在聲明一個變量時,如果它的值在聲明后會發(fā)生變化,那么你需要聲明它是可變的(LCTT 譯注:Rust 中變量默認(rèn)是不可變的)。常見的錯誤是在某個變量 沒有 變化的情況下聲明它是可變的,這時編譯器會警告你。如果你收到了 Cargo 的警告,說一個可變的變量沒有被改變,而你認(rèn)為它被 改變 了,那么你可能要檢查該變量的范圍,并確保你使用的是正確的那個。

return – 實際上我很少使用 return,它用于從函數(shù)中返回一個值,但是如果你只是在函數(shù)的最后一行提供值(或提供返回值的函數(shù)),通常會變得更簡單,能更清晰地閱讀。警告:在很多情況下,你 會 忘記省略這一行末尾的分號(;),如果你這樣做,編譯器會不高興的。

unsafe – 如其意:如果你想做一些不能保證 Rust 內(nèi)存安全的事情,那么你就需要使用這個關(guān)鍵字。我絕對無意在現(xiàn)在或?qū)淼娜魏螘r候宣布我的任何 Rust 代碼不安全;Rust 如此友好的原因之一是它阻止了這種黑客行為。如果你真的需要這樣做,再想想,再想想,然后重新設(shè)計代碼。除非你是一個非常低級的系統(tǒng)程序員,否則要 避免 使用 unsafe。

use – 當(dāng)你想使用另一個 crate 中的東西時,例如結(jié)構(gòu)體、變量、函數(shù)等,那么你需要在你要使用它的代碼的代碼塊的開頭聲明它。另一個常見的錯誤是,你這樣做了,但沒有在 Cargo.toml 文件中添加該 crate (最好有一個最小版本號)。

我知道,這不是我寫過的最復(fù)雜的文章,但這是我在開始學(xué)習(xí) Rust 時會欣賞的那種文章。我計劃在關(guān)鍵函數(shù)和其他 Rust 必知知識方面編寫類似的文章:如果你有任何要求,請告訴我!

 

責(zé)任編輯:未麗燕 來源: Linux中國
相關(guān)推薦

2021-01-12 09:22:18

Synchronize線程開發(fā)技術(shù)

2010-03-29 17:08:04

Nginx squid

2011-04-11 15:06:22

C++關(guān)鍵字

2024-09-04 08:31:01

語言模型設(shè)計

2018-04-11 14:13:29

物聯(lián)網(wǎng)信息技術(shù)互聯(lián)網(wǎng)

2020-12-22 09:55:55

IT首席信息官CIO

2015-07-08 08:51:11

SDN

2022-05-23 08:09:42

物聯(lián)網(wǎng)IOT

2020-12-18 10:35:27

IT技術(shù)領(lǐng)導(dǎo)者

2012-12-04 18:11:46

LanSecS堡壘主機(jī)堡壘機(jī)

2022-02-17 08:31:38

C語言staic關(guān)鍵字

2021-02-01 13:10:07

Staticc語言UNIX系統(tǒng)

2022-05-06 08:32:40

Pythonwith代碼

2025-01-09 10:30:40

2024-03-15 15:12:27

關(guān)鍵字底層代碼

2022-11-12 18:32:50

Golangomitemptyjson

2009-12-01 14:35:06

Linux忠告

2018-09-10 06:00:12

2009-09-17 09:30:00

Linq LET關(guān)鍵字

2022-01-04 16:35:42

C++Protected關(guān)鍵字
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美激情精品久久久久久变态 | 美国一级毛片a | 亚洲区中文字幕 | 羞羞色在线观看 | 中文字幕乱码视频32 | www.四虎.com| 国产综合在线视频 | 在线免费视频一区 | 亚洲精品一区二区三区蜜桃久 | 午夜在线观看免费 | 成人免费观看网站 | 亚洲一区二区三区在线视频 | 日本午夜网 | www.99热.com | 国产专区视频 | 久久这里只有精品首页 | 日本在线网址 | 日韩av免费在线观看 | 欧美精品在线一区 | 国产视频不卡一区 | 一区二区精品 | 国产激情免费视频 | 亚洲视频免费 | 中文字幕国产在线 | 日韩亚洲视频 | 啪啪免费网站 | 日韩一 | 国产午夜精品久久 | 成人性视频在线 | 天天看天天摸天天操 | 国产色| 日本三级在线网站 | 国产精品国产精品国产专区不卡 | 剑来高清在线观看 | av在线播放网址 | 99re视频在线观看 | 日韩在线电影 | 51ⅴ精品国产91久久久久久 | 日韩欧美操 | 午夜爽爽男女免费观看hd | 99免费精品 |