arrays/slices
Cũng giống như tuple, các array và slice cũng có thể được phân tách bằng match
:
fn main() { // Hãy thử thay đổi giá trị trong array, hoặc biến nó thành một slice! let array = [1, -2, 6]; match array { // Gán phần tử thứ 2 và thứ 3 cho các biến tương ứng [0, second, third] => println!("array[0] = 0, array[1] = {}, array[2] = {}", second, third), // Các giá trị đơn lẻ có thể được bỏ qua bằng _ [1, _, third] => println!( "array[0] = 1, array[2] = {} and array[1] was ignored", third ), // Bạn cũng có thể gán một vài thứ và bỏ qua phần còn lại [-1, second, ..] => println!( "array[0] = -1, array[1] = {} and all the other ones were ignored", second ), // Dòng này sẽ không được biên dịch // [-1, second] => ... // Hoặc cũng có thể lưu chúng trong một array/slice khác (kiểu của nó phụ thuộc // vào giá trị được match) [3, second, tail @ ..] => println!( "array[0] = 3, array[1] = {} and the other elements were {:?}", second, tail ), // Kết hợp các patterns nói ở trên, ở đây chúng ta có thể gán giá trị của // phần tử thứ nhất và thứ hai, và lưu phần còn lại trong một array đơn [first, middle @ .., last] => println!( "array[0] = {}, middle = {:?}, array[2] = {}", first, middle, last ), } }
Xem thêm tại đây:
Arrays và Slices và @
trong Binding