Rust學習——基礎概念
阿新 • • 發佈:2021-11-26
變數:
- let 、let mut
- const
資料型別:
- 標量型別(scalar types)
- 整型
- 有符號和無符號代表數字能否為負值
- 有符號:-(2^(n-1)) ~ 2^(n-1) - 1
- 無符號:0 ~ 2^n - 1
- 長度型別為 arch 表示根據當前計算機架構位數,64位就是64位,32位就是32位
- 宣告整型預設型別是i32
- 浮點
- 宣告浮點數預設型別是 f64(因為精度比f32高)
- 採用IEEE-754 標準表示
- 布林
- bool
- 字元
- 用char宣告,使用單引號,字串使用雙引號
- char型別大小為4個位元組 4 * 8 = 32位
- 整型
- 複合型別(compound types)
- 元祖(tuple)
- 將多個不同型別值組合進一個複合型別的方式
2.元祖長度是固定的,不可變 - 元祖可以解構
- 支援用 .index 的方式訪問值
- 如果表示式不返回任何值,則會隱式返回單元值,即沒有任何值得元祖:()
- 將多個不同型別值組合進一個複合型別的方式
- 陣列
- 陣列中的每個元素型別必須相同
- rust中陣列長度是固定的,不可變
- let a = [3; 2] === let a = [3, 3]
- let a: [i32; 5] = [1,2,3,4,5]
- 陣列越界rust會panic,直接告訴你,安全保障
函式
- 函式變數命名遵循 snake case風格,所有字母都是小寫並用下劃線分割單詞。
- 函式引數
- 必須宣告每個引數型別
- 包含語句和表示式的函式體
- rust是一門基於表示式的語言
- 語句不返回值
- 表示式可以是語句的一部分
- {},也是一個表示式,可以用來運算
- 如果在表示式結尾加上分號,就變成了語句,語句不會返回值,所以要視情況而定
- 具有返回值的函式
- -> 宣告函式返回值型別
註釋
rust 中的註釋有兩種:
- -> 宣告函式返回值型別
- // 雙斜槓註釋
- doc 註釋
控制流 - if不用寫括號包裹條件(arms)
- 條件必須是bool值,無隱式轉換
- if可以在let中使用..
- 每個分支表示式返回值必須都是相同型別
- 迴圈有三種:loop、while、for
- loop
- 使用break停止迴圈
- 使用continue跳出本次迴圈
- 若存在巢狀迴圈,break、continue應用於就近的內層迴圈
- 可以選擇在迴圈上指定“迴圈標籤”,即給迴圈命名,這樣可以使用break、continune顯示操作迴圈迭代,如 break 'xxxx_loop';
- 迴圈可以返回值,通過在break表示式後加入表示式,如 break count * 2;
- while
- for
- 在陣列越界這種場景時,可以考慮用for替代while
- 通過 for ele in list.iter() {} 迭代list
- 通過 for num in (1..4).rev() {} 反轉輸出4321
- loop
- 元祖(tuple)