1. Tuples trong Swift có loại nào?
Trong Swift hiện có hai loại tuples chính, thứ nhất là loại có đặt tên key (Named Tuples) và thứ hai là loại không đặt tên (Unnamed Tuples). Tùy theo nhu cầu mà bạn chọn loại phù hợp với dự án của mình.
Nếu bạn đã từng học qua mảng trong PHP thì có thể so sánh với mảng có chỉ mục và mảng kết hợp. Hoặc bạn đã từng học qua JSON Javascript thì nó giống như mảng Array và Object.
Unnamed Tuples
Trong Swift ta sử dụng dạng unnamed Tuples để lưu trữ danh sách các dữ liệu mà không có đặt tên, mỗi giá trị sẽ được cách nhau bằng dấu phẩy.
Xem ví dụ dưới đây để hiểu rõ hơn về loại này.
1
2
3
|
let userInfo = ( "Suresh Dasari" , 200) Or var userinfo:(String, Int) = ( "Suresh Dasari" , 200) |
Trong ví dụ này mình đã tạo một Tuple gồm hai giá trị, đầu tiên là kiểu String và thứ hai là kiểu Int. Bạn có thể khai báo bằng hai cách trên đều đúng.
Named Tuples
Giống với tên của nó, loai này bạn sẽ đặt tên cho từng giá trị trong tuple. Cách này nhìn rất tường minh và rất dễ hiểu, bạn có thể xem ví dụ dưới đây để hiểu hơn.
1
2
3
|
let userinfo = (name: "Suresh Dasari" , id: 200) Or var userinfo:(name:String, id:Int) = ( "Suresh Dasari" , 200) |
Mình đã định nghĩa hai key là name và id cho hai giá trị trên.
Bạn có thể đặt tên key bất kì, miễn là chữ cái tiếng Anh không có dấu và ký tự đặc biệt.
2. Làm việc với Tuples trong Swift
Là một loại dữ liệu đặc biệt nên nó sẽ hỗ trợ chúng ta cách truy xuất các phần tử trong Tuples, cách thêm tuple mới và xóa tuple ra khỏi danh sách.
Ví dụ dưới đây thể hiện một số thao tác trong Tuples thường gặp nhất.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
// Khởi tao và truy xuất Tupe đơn giản let tp1 = ( "Suresh Dasari" , 200) print(tp1.0) // phần tử đầu tiên print(tp1.1) // phần tử thứ hai let tp2 = (5, 10, 7) print(tp2) // Khai báo hai biến gán giá trị // lần lượt cho phần tử trong tuple let (uname,uid) = tp1 let result = uname + ", " + uid print(result) // Sử dụng (_) to bỏ qua phần tử Tuple thứ hai let (onlyname,_) = tp1 print(onlyname) // Truy xuất loại named tuple let un = (name: "Suresh Dasari" , id: 200) print(un.name) print(un.id) |
3. Ví dụ sử dụng Switch Case với Tuples
Sau đây là ví dụ đơn giản về việc sử dụng tuples với câu lệnh Switch Case trong ngôn ngữ lập trình swift.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
let coordinates: (x: Int, y: Int, z: Int) = (3, 2, 5) switch coordinates { case (0, 0, 0): print( "Origin" ) case (_, 2, 5): print( "On x axis." ) case (1, _, 0): print( "On y axis." ) case (1, 2, _): print( "On z axis." ) default : print( "Somewhere in space" ) } |
Chạy chương trình này ta sẽ thu được kết quả như sau:
On x axis.
Nguyên nhân là do tại case thứ hai ta đã sử dụng một giá trị bỏ qua (_, 2, 5)
nên việc so khớp ở đây là hoàn toàn đúng.
Đây là cách chúng ta có thể sử dụng các bộ dữ liệu Tuple trong ngôn ngữ lập trình Swift để gom nhóm nhiều giá trị đơn thành một giá trị ghép để sử dụng nó trong các ứng dụng dựa trên yêu cầu của chúng ta.
Cảm ơn các bạn đã theo dõi bài viết này.
Theo: freetuts.net