MN HKD

Tải ứng dụng phiên bản mới nhất để tạo sổ sách cho tất cả 4 nhóm hộ kinh doanh theo thông tư 152/2025/TT-BTC.

Tổng quan Properties của Swift

04/12/2023

Trong Swift, thuộc tính (properties) là các giá trị được liên kết với một đối tượng, đặc biệt là với các đối tượng của lớp (class), cấu trúc (struct), hoặc đối tượng của giao thức (protocol). Dưới đây là một tổng quan về các đặc điểm quan trọng của thuộc tính trong Swift:

1. Stored Properties (Thuộc Tính Lưu Trữ):

  • Là các biến hoặc hằng số được liên kết với một đối tượng.
  • Có thể là biến (var) hoặc hằng số (let).
  • Được khởi tạo bằng giá trị mặc định hoặc thông qua một initializer.
class MyClass {
    var variableProperty: Int = 10
    let constantProperty: String

    init(constantValue: String) {
        constantProperty = constantValue
    }
}

2. Computed Properties (Thuộc Tính Tính Toán):

  • Không lưu trữ giá trị mà thay vào đó cung cấp một getter và một setter để tính toán giá trị khi được truy cập hoặc gán.
struct Rectangle {
    var width: Double
    var height: Double

    // Thuộc tính tính toán diện tích
    var area: Double {
        return width * height
    }
}

var myRectangle = Rectangle(width: 5.0, height: 3.0)
print(myRectangle.area)  // In ra: 15.0

3. Property Observers (Quan Sát Thuộc Tính):

  • willSetdidSet cho phép thực hiện các hành động trước và sau khi giá trị của thuộc tính thay đổi.
class StepCounter {
    var totalSteps: Int = 0 {
        willSet(newTotalSteps) {
            print("About to set totalSteps to \(newTotalSteps)")
        }
        didSet {
            if totalSteps > oldValue {
                print("Added \(totalSteps - oldValue) steps")
            }
        }
    }
}

let stepCounter = StepCounter()
stepCounter.totalSteps = 10

4. Type Properties (Thuộc Tính Kiểu):

  • Liên kết với kiểu chứ không phải với thể hiện của kiểu.
  • Được khai báo bằng từ khóa static cho lớp và class cho các kiểu đối tượng.
struct SomeStructure {
    static var typeProperty: Int = 0
}

SomeStructure.typeProperty = 100

5. Lazy Properties (Thuộc Tính Lười Biếng):

  • Được khởi tạo chỉ khi được sử dụng lần đầu tiên, thường sử dụng để trì hoãn công việc tạo đối tượng có thể tốn nhiều tài nguyên.
class DataManager {
    lazy var fileLoader: FileLoader = FileLoader()
}

let dataManager = DataManager()
// Không có FileLoader được tạo cho đến khi fileLoader được sử dụng lần đầu tiên

6. Property Wrappers:

  • Một cách để đóng gói và tái sử dụng mã nguồn cho logic quản lý của thuộc tính.
@UserDefaultsWrapper(key: "highScore", defaultValue: 0)
var highScore: Int

Thuộc tính là một phần quan trọng của Swift, chúng giúp định nghĩa và quản lý dữ liệu trong các đối tượng của bạn, cung cấp tính năng quan trọng cho việc lập trình hướng đối tượng và lập trình hướng thủ tục.

Tải Ứng Dụng MN HKD

Quản lý kế toán hộ kinh doanh dễ dàng, mọi lúc mọi nơi