複合型別
類型 | 常值 | |
---|---|---|
陣列 | [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
,可能就不會感到陌生。
- 您可以將其視為其他程式設計語言中的