iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
Modern Web

Rust 新手村系列 第 9

Rust-資料型別-複合型別

  • 分享至 

  • xImage
  •  

複合型別是指多個數值組為一個型別

Rust 有兩個基本複合型別

元組型別(tupl)

元組型別是指將多個不同型別組成一個複合型別

固定長度,宣告好就無法增減長度

每一格都是一個獨立型別

// 宣告時就指定型別
let tup: (i32, f64, u8, &str) = (1, 3.1417, 1, "hello");

// 自動判斷型別的宣告方式
let tup = (1, 3.1417, 1, "hello");

println!("{:?}", tup);

輸出
(1, 3.1417, 1, "hello")

// 多維元組
let tup = ("1", ("2", ("3")));

元組也可以透過解構(destructuring)拆分各個型別

let tup: (i32, f64, u8, &str) = (1, 3.1417, 1, "hello");

// 解構成各個變數
let (a, b, c, d) = tup;

println!("{} {} {} {}", a, b, c, d);

輸出
1 3.1417 1 hello

也可以透過"."再加上索引位置來取得元組內的值

let tup: (i32, f64, u8, &str) = (1, 3.1417, 1, "hello");

// 索引從0開始
println!("{} {} {} {}", tup.0, tup.1, tup.2, tup.3);

輸出
1 3.1417 1 hello

陣列型別(array)

和元組一樣固定長度,差別是陣列中的型別必須要一樣的

// 宣告時指定型別和長度i32是型別;之後的5是陣列的長度
let array: [i32; 5] = [1, 2, 3, 4, 5];

// 自動判斷型別的宣告方式
let array = [1, 2, 3, 4, 5];

// 簡化的宣告方式,陣列裡全是hello長度為5
let array = ["hello"; 5];

透果索引位址取值的方式

let a = [1, 2, 3, 4, 5];

println!("{} {} {} {} {}", a[0], a[1], a[2], a[3], a[4]);

輸出
1 2 3 4 5

上一篇
Rust-資料型別-字元.字串
下一篇
Rust-流程控制-if
系列文
Rust 新手村30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言