Trong Swift, struct
(viết tắt của structure) là một kiểu dữ liệu giúp định nghĩa một đơn vị dữ liệu đơn giản, thường được sử dụng để đóng gói các dữ liệu liên quan lại với nhau. Dưới đây là một tổng quan về các đặc điểm chính của structure trong Swift:
Mục Lục
1. Định Nghĩa Structure:
struct MyStruct {
// Thuộc tính (properties)
var name: String
var age: Int
// Initializer (Khởi tạo)
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Phương thức (methods)
func printInfo() {
print("Name: \(name), Age: \(age)")
}
}
2. Thuộc Tính (Properties):
- Struct có thể chứa các thuộc tính để lưu trữ dữ liệu.
3. Phương Thức (Methods):
- Struct có thể chứa các phương thức để thực hiện các hành động hoặc tính toán.
4. Initializer:
- Struct cũng có initializer, tương tự như class, để khởi tạo giá trị cho các thuộc tính.
5. Value Type:
- Struct là kiểu giá trị (value type). Khi bạn gán một struct cho một biến hoặc truyền nó vào một hàm, bạn đang làm việc với một bản sao của struct đó, chứ không phải là tham chiếu đến struct.
6. Không Có Kế Thừa:
- Khác với class, struct không hỗ trợ kế thừa. Mỗi struct đều độc lập và tự chứa dữ liệu của nó.
7. No Deinitializer:
- Struct không có deinitializer vì nó không theo dõi việc giải phóng tài nguyên như ARC (Automatic Reference Counting) của class.
8. Mutating Methods:
- Để thay đổi giá trị của các thuộc tính trong một phương thức của struct, bạn cần đánh dấu phương thức đó với từ khóa
mutating
.
9. Type Casting (Ép Kiểu):
- Các phương thức
as?
vàas!
có thể được sử dụng để ép kiểu giữa các struct có quan hệ.
10. Protocol Conformance (Tuân Thủ Giao Thức):
- Struct có thể tuân thủ các giao thức để định rõ hành vi và yêu cầu mà đối tượng cần tuân thủ.
Ví dụ Sử Dụng Struct:
var person = MyStruct(name: "John", age: 25)
person.printInfo() // In ra: "Name: John, Age: 25"
Struct là một công cụ mạnh mẽ trong Swift, thích hợp cho việc biểu diễn các đơn vị dữ liệu nhỏ, không thay đổi và có tính độc lập.
Xin chào,
99,99% nội dung trên website này là nhờ hỏi ChatGPT, rồi mình biên tập lại để dễ hiểu và dùng lâu dài. Một vài bài tự viết, còn lại là “làm việc nhóm với AI”
Mình lưu tại đây để tra cứu, học tập và chia sẻ với bạn bè. Nếu bạn tìm được gì hữu ích, cứ đọc thoải mái – miễn phí, không quảng cáo.
Mình cũng có vài app cá nhân:
QuestionBank – Ôn thi vào 10 (iOS, Android)
TypingTest by QuestionBank (iOS, Android)
Cảm ơn bạn đã ghé qua!