×

Tạo thuộc tính tĩnh với từ khóa static trong Swift

Trong Swift, từ khóa static được sử dụng để khai báo các thuộc tính và phương thức tĩnh trong các lớp, struct hoặc enum. Các thành phần tĩnh là các thành phần kết nối trực tiếp với kiểu dữ liệu chứ không phải với một thể hiện cụ thể của kiểu đó. Điều này có nghĩa là bạn có thể truy cập vào các thuộc tính và phương thức tĩnh mà không cần tạo một thể hiện của lớp, struct hoặc enum đó.

Khai Báo Thuộc Tính Tĩnh trong Lớp

Đầu tiên, hãy xem cách khai báo thuộc tính tĩnh trong một lớp (class). Trong Swift, bạn sử dụng từ khóa static hoặc class để định nghĩa các thuộc tính và phương thức tĩnh.

class MyClass {
    static var staticProperty: String = "Hello, Swift!"
    
    class var classProperty: String {
        return "Hello from class property!"
    }
}

Trong ví dụ trên, staticProperty là một thuộc tính tĩnh của lớp MyClass. Bạn có thể truy cập nó bằng cách sử dụng tên lớp thay vì một thể hiện của lớp:

print(MyClass.staticProperty) // Output: Hello, Swift!

Đối với classProperty, đây là một thuộc tính tĩnh dạng read-only (chỉ đọc) với từ khóa class. Nó có khác biệt quan trọng so với static khi làm việc với các lớp con (subclass). Các lớp con có thể ghi đè các thuộc tính hoặc phương thức tĩnh đã được khai báo bằng từ khóa class, nhưng không thể ghi đè các thuộc tính hoặc phương thức tĩnh khai báo bằng từ khóa static.

Khai Báo Thuộc Tính Tĩnh trong Struct

Trong struct, bạn chỉ có thể sử dụng từ khóa static để khai báo thuộc tính và phương thức tĩnh.

struct MyStruct {
    static var staticProperty: String = "Hello, Struct!"
}

print(MyStruct.staticProperty) // Output: Hello, Struct!

Vì struct không hỗ trợ kế thừa, bạn không cần phải lo lắng về sự khác biệt giữa staticclass trong ngữ cảnh này.

Khai Báo Thuộc Tính Tĩnh trong Enum

Tương tự như struct, enum cũng sử dụng từ khóa static để khai báo các thuộc tính và phương thức tĩnh.

enum MyEnum {
    static var staticProperty: String = "Hello, Enum!"
}

print(MyEnum.staticProperty) // Output: Hello, Enum!

Sử Dụng Phương Thức Tĩnh

Bên cạnh thuộc tính tĩnh, bạn cũng có thể khai báo phương thức tĩnh. Phương thức tĩnh là các phương thức mà bạn có thể gọi lên kiểu dữ liệu mà không cần một thể hiện cụ thể.

struct MathUtility {
    static func add(a: Int, b: Int) -> Int {
        return a + b
    }
}

let result = MathUtility.add(a: 5, b: 7)
print(result) // Output: 12

Trong ví dụ trên, phương thức add là một phương thức tĩnh của struct MathUtility. Bạn có thể gọi nó trực tiếp bằng cách dùng tên struct.

Kết Luận

Từ khóa static trong Swift rất hữu ích khi bạn cần xác định các thuộc tính và phương thức mà nên liên kết với kiểu dữ liệu thay vì một thể hiện của kiểu dữ liệu đó. Tùy vào việc bạn đang làm việc với lớp, struct hay enum, việc hiểu rõ cách khai báo và sử dụng thuộc tính tĩnh sẽ giúp bạn xây dựng mã nguồn hiệu quả và có tổ chức hơn.

Hãy nhớ rằng, việc lựa chọn giữa staticclass khi làm việc với lớp là quan trọng: static là cố định và không thể ghi đè, trong khi class có thể được các lớp con ghi đè.

Comments