欧美日韩国产一区二区|qovd片|小明个人发布看看|小浪货你夹真紧水又多|老头把我添高潮了A片故|99热久久精品国产一区二区|久久久春色AV

從高級程序員的角度來看 rust編程入門實(shí)戰(zhàn)與進(jìn)階( 二 )


  • 必須遵守的命名方案
變量和函數(shù)/方法只能使用小寫字母、數(shù)字和下劃線,比如snake_case,但數(shù)字不能放在開頭 。
結(jié)構(gòu)(和其他類型)、枚舉(包括枚舉值)和trait(但不包括它們的函數(shù)/方法)需要以大寫字母開頭,并且不能包含任何下劃線 。
  • 沒有增量運(yùn)算符
實(shí)際上有,你可以使用i= 1 。與賦值相同,該表達(dá)式將返回賦值后的值(即,將 i 設(shè)置為 i1,然后返回 i) 。
沒有 i(或者i、i-- 和 --i),因?yàn)檫@些運(yùn)算符有點(diǎn)混亂 。
你確定如下操作的結(jié)果嗎(尤其是在沒有指定語言的情況下)?
a[ii] = iia[i]
問題在于,直到最近上述運(yùn)算的實(shí)際行為還是未定義的,這意味著不同的編譯器(甚至可能是同一個編譯器的不同版本)可能會產(chǎn)生不同的行為 。為了解決這個問題并提高代碼的可讀性(Rust非常重視可讀性和冗長,甚至不惜多敲幾次鍵盤),Rust僅支持 i= 1,幾乎所有人都知道該表達(dá)式的意思是變量i加1,并返回最終結(jié)果 。所以,你不必知道 i實(shí)際上返回的是原始值(不是新值),而且還會加1 。
此外 , 運(yùn)算符重載會使用trait,但本文不打算詳細(xì)討論 。
  • 幾乎所有的東西都是表達(dá)式
除了函數(shù)調(diào)用之外 , 還有 if、while、match 和 for 都是表達(dá)式 。
你可以直接使用 if 來代替其他語言中常見的三元運(yùn)算符:
let var = if something { 1 } else { 2 };
循環(huán)會根據(jù)break的調(diào)用返回結(jié)果 。你可以利用它,反復(fù)重試某個操作,直到成功 。
從高級程序員的角度來看 rust編程入門實(shí)戰(zhàn)與進(jìn)階

文章插圖
變量變量通過 let 聲明,并且有作用域 。類型是可選的,Rust 非常擅長推斷類型(比 Typescript 更出色) 。
let var: usize = 1;
上述變量定義了一個類型為usize的變量var(usize是一個32或64位的數(shù)字 , 具體取決于計(jì)算機(jī)架構(gòu)) 。
你可以重復(fù)聲明變量 。當(dāng)重復(fù)聲明某個變量時 , 之前聲明的變量就會被刪除(除非該變量被引用,在這種情況下只有引用會保留,而原始變量會被刪除) , 而且變量的類型也會改變 。
let var = 1;let var = "something";
在默認(rèn)情況下 , 變量是不可變的 。如果你想修改它們,則需要在 let 之后加上關(guān)鍵字 mut 。
let var = 1;var = 2; // 錯誤!不可以修改不可變的變量
let mut var = 1;var = 2;
從高級程序員的角度來看 rust編程入門實(shí)戰(zhàn)與進(jìn)階

文章插圖
函數(shù)fn main(arg: u8) -> u8 { // something arg}
函數(shù)的行為幾乎與JS一模一樣 , 只不過它們并不是數(shù)據(jù)類型,而且語法上略有不同 。
參數(shù)的指定與 Typescript 類似,即key: type 。返回類型通過 -> 指定 。
有趣的是,雖然 Rust 需要分號,但如果最后一個表達(dá)式后面的分號忘寫了,它會被作為返回值(即使沒有 return 關(guān)鍵字) 。
從高級程序員的角度來看 rust編程入門實(shí)戰(zhàn)與進(jìn)階

文章插圖
If語句if something {} else {} else if something_else {}
if 語句的使用非常基本,不在此贅述 。
有一點(diǎn)需要注意,如非必要,使用括號實(shí)際上是錯誤的 。你可以利用括號指定執(zhí)行順序:
if (something || something_else) && something_other {}
如前所述,if 也可以返回一個值,而該值可用于賦值、參數(shù)、返回或其他地方 。

相關(guān)經(jīng)驗(yàn)推薦