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.

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à nameid 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.

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP