×

Định nghĩa kiểu dữ liệu liệt kê với enum trong Swift

Lập trình trong Swift, loại ngôn ngữ lập trình của Apple rất phổ biến cho việc phát triển các ứng dụng iOS, macOS, watchOS và tvOS, thường yêu cầu việc xử lý các tập hợp giá trị mà có quan hệ với nhau. Một trong những công cụ hữu ích nhất để thực hiện điều này chính là kiểu dữ liệu liệt kê, hay còn gọi là enum.

Kiểu dữ liệu liệt kê cho phép bạn định nghĩa một nhóm các giá trị liên quan nhau trong một cấu trúc rõ ràng và có trật tự, giúp mã nguồn trở nên dễ đọc và dễ bảo trì hơn. Dưới đây là cách để khai báo loại kiểu dữ liệu này trong Swift.

Khai báo và sử dụng Enum trong Swift

Để khai báo một enum, bạn sử dụng từ khóa enum và cung cấp một danh sách các trường hợp (case) khác nhau. Đây là một ví dụ đơn giản về cách sử dụng enum để định nghĩa các ngày trong tuần:

enum Weekday {
    case monday
    case tuesday
    case wednesday
    case thursday
    case friday
    case saturday
    case sunday
}

Với định nghĩa trên, bạn có thể tạo ra một biến của kiểu Weekday:

var day: Weekday = .monday

Sử dụng Switch với Enum

Một trong những ưu điểm lớn của enum trong Swift đó là bạn có thể sử dụng câu lệnh switch để xử lý các trường hợp khác nhau một cách rõ ràng và dễ hiểu:

switch day {
case .monday:
    print("It’s the start of the week.")
case .friday:
    print("It's almost the weekend!")
case .saturday, .sunday:
    print("It's the weekend!")
default:
    print("It's a weekday.")
}

Chú ý rằng bạn không cần phải bao gồm break sau mỗi case trong Swift như trong nhiều ngôn ngữ khác.

Enum với Giá trị Gán

Enum trong Swift cũng có thể có giá trị gán (raw value). Các giá trị gán này có thể là chuỗi (String), số nguyên (Int), hoặc thậm chí là số thực (Double). Ví dụ:

enum Month: Int {
    case january = 1
    case february
    case march
    case april
    case may
    case june
    case july
    case august
    case september
    case october
    case november
    case december
}

Trong ví dụ trên, trường hợp january được gán giá trị 1, và các trường hợp tiếp theo sẽ tự động nhận giá trị tăng dần.

Enum với Các Phương Thức và Thuộc Tính

Cũng như các kiểu dữ liệu khác, bạn có thể thêm các phương thức và thuộc tính vào enum:

enum CompassPoint {
    case north
    case south
    case east
    case west
    
    var description: String {
        switch self {
        case .north:
            return "North"
        case .south:
            return "South"
        case .east:
            return "East"
        case .west:
            return "West"
        }
    }
}

let direction = CompassPoint.north
print(direction.description)  // Output: North

Kết Luận

Kiểu dữ liệu liệt kê trong Swift mang lại một cách tiếp cận mạnh mẽ và linh hoạt để nhóm các giá trị liên quan lại với nhau. Việc sử dụng chúng có thể giúp mã nguồn của bạn trở nên rõ ràng hơn, dễ bảo trì hơn và ít có khả năng gặp lỗi hơn.

Cho dù bạn đang xử lý các trạng thái của một ứng dụng, các loại đơn vị đo lường, hay các loại hành vi của đối tượng, enum có thể là giải pháp mà bạn cần để tổ chức và quản lý mã nguồn của mình một cách hiệu quả.

Comments