Tuples trong Swift
Trong bài này chúng ta sẽ tìm hiểu kiểu dữ liệu Tuple trong Swift. Việc sử dụng Tuple trong Swift sẽ giúp ta gom nhóm nhiều giá trị lại với nhau, tạo thành một dạng danh sách.
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.
Bài viết này được đăng tại [free tuts .net]
Xem ví dụ dưới đây để hiểu rõ hơn về loại này.
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.
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 Tupe thường gặp nhất.
// 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 Tuple
Sau đây là ví dụ đơn giản về việc sử dụng tuple với câu lệnh Switch Case trong ngôn ngữ lập trình swift.
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.