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,
Bài viết này sử dụng AI ChatGPT để viết sau đó được lựa chọn, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí cá nhân về các vấn đề, giải pháp. Tôi lưu tại website này để học, tra cứu và chia sẻ.
Tôi là Minh, sống tại Hà Nội, kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Các ngôn ngữ yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh