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

從高級程序員的角度來看 rust編程入門實戰與進階( 二 )


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

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

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

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

相關經驗推薦