複合型別
| 類型 | 常值 | |
|---|---|---|
| 陣列 | [T; N] | [20, 30, 40]、[0; 3] |
| 元組 | ()、(T,)、(T1, T2)… | ()、('x',)、('x', 1.2)… |
陣列指派與存取:
fn main() { let mut a: [i8; 10] = [42; 10]; a[5] = 0; println!("a: {:?}", a); }
元組指派與存取:
fn main() { let t: (i8, bool) = (7, true); println!("1st index: {}", t.0); println!("2nd index: {}", t.1); }
重要須知:
陣列:
-
陣列型別
[T; N]的值會保留同樣屬於T型別的N(編譯時間常數) 元素。請注意,陣列的長度是「其型別的一部分」,也就是說[u8; 3]和[u8; 4]視為兩種不同型別。 -
我們可以使用常值將值指派給陣列。
-
在主函式中,輸出陳述式會使用
?格式參數要求偵錯實作:{}提供預設輸出內容,{:?}則提供偵錯輸出內容。我們也可以使用{a}和{a:?}而不需指定格式字串後方的值。 -
加入
#(例如{a:#?}) 可叫用方便閱讀的「美化排版」格式。
元組:
-
和陣列一樣,元組有固定的長度。
-
元組會將不同型別的值組成複合型別。
-
元組的欄位可透過點號和值的索引存取,例如
t.0、t.1。 -
空白元組
()也稱為「單位型別」。它既是型別,也是該型別唯一的有效值,亦即該型別及其值都以()表示。舉例來說,空白元組可用於表示函式或運算式沒有任何回傳值,我們會在之後的投影片看到這個例子。- 您可以將其視為其他程式設計語言中的
void,可能就不會感到陌生。
- 您可以將其視為其他程式設計語言中的