- Bài 1: Tổng quan ngôn ngữ Swift
- Bài 2: Hướng dẫn cài đặt Xcode và chạy một playground
- Bài 3: Những cú pháp cơ bản trong swift
- Bài 4: Kiểu dữ liệu
- Bài 5: Toán tử trong ngôn ngữ lập trình Swift
- Bài 6: Câu lệnh rẽ nhánh trong swift – Decision Making
- Bài 7: Chuỗi ký tự trong Swift - Character và String
- Bài 8: Vòng lặp trong swift – Loops
- Bài 9: Mảng Array trong swift
- Bài 10: Dictionary trong swift
- Bài 11: Optional trong Swift
- Bài 12: Functions trong swift
- Bài 13: Closure trong swift
- Bài 14: Enumeration trong swift
- Bài 15: Struct trong swift
- Bài 16: Classes trong swift
- Bài 17: Properties trong swift
- Bài 18: Methods trong swift
- Bài 19: Subscripts trong swift
- Bài 20: Inheritance trong swift
- Bài 21: Initialization trong swift
- Bài 22: Deinitialization trong swift
- Bài 23: ARC trong swift
- Bài 24: Type casting trong swift
- Bài 25: Extensions trong swift
- Bài 26: Protocols trong swift
- Bài 27: Generics trong swift
- Bài 28: Access control trong swift
Bài 15: Struct trong swift - Lập trình Swift cơ bản
Đăng bởi: Admin | Lượt xem: 3032 | Chuyên mục: Swift
Đối với ngôn ngữ lập trình Swift, Struct được hiểu là một kiểu giá trị đặc biệt có thể tạo ra một biến lưu trữ nhiều giá trị khác nhau nhưng lại liên quan tới nhau.
Ví dụ như sau:
- Mã nhân viên
- Tên nhân viên
- Chức vụ
Thay vì phải bỏ nhiều thời gian để tạo ra 3 biến lưu trữ các thông tin của nhân viên thì lập trình viên hoàn toàn có thể sử dụng Struct để lưu trữ 3 thông tin trong cùng 1 biến.
Swift sử dụng từ khóa struct để khai báo một Struct.
import Foundation
struct Employee {
var empNumber:String
var empName:String
var position:String
// Constructor.
init(empNumber:String, empName:String, position:String) {
self.empNumber = empNumber;
self.empName = empName;
self.position = position;
}
}
Ví dụ sử dụng Struct:
import Foundation
func test_EmployeeStruct() {
// Tạo một biến kiểu struct Employee.
let john = Employee(empNumber:"E01",empName: "John",position: "CLERK")
print("Emp Number: " + john.empNumber)
print("Emp Name: " + john.empName)
print("Emp Position: " + john.position)
}
Định nghĩa Structures
Để định nghĩa Struct khá đơn giản, nó giống như cách định nghĩ class . Để hiểu rõ hơn, mời bạn tham khảo ở ví dụ dưới đây.
struct Wallet {
var dollars: Int
var cents: Int
}
Đặc điểm
- Chứa các properties, methods
- Truy cập dữ liệu đối tượng nhanh hơn bằng việc định nghĩa Subscripts
- Chỉnh sửa và tạo mới lại hàm khởi tạo
- Cho phép kế thừa Protocol
- Mở rộng tính năng bằng việc sử dụng Extension để mở rộng tính năng
Value Type
Mỗi instance sẽ giữ một bản sao dữ liệu duy nhất của nó. Khi được gán cho một hằng, biến hoặc một hàm nó sẽ khởi tạo một instance mới. Vì thế, nếu giá trị của 1 instance nào đó bị thay đổi sẽ không làm ảnh hưởng tới các instance khác. Bạn có thể tham khảo ví dụ dưới đây để hiểu rõ hơn.
struct Employee {
var code: Int
var name: String
var address: String
}
var a = Employee(code: 5, name: "BXH", address: "Sun*")
var b = a
b.name = "MH"
print(a.name) // In ra "BXH"
print(b.name) // In ra "MH"
// Nhận thấy instance a khi được gắn cho b, nó sẽ copy giá
// trị và tạo ra một instance mới có giá trị giống với a nhưng
// độc lập với a. Do đó khi thay đổi name của b, name của a
// không bị thay đổi theo
Thay đổi dữ liệu của struct
struct OtherEmployee {
var code: Int
mutating func changeCode(newCode: Int) {
self.code = newCode
}
}
Lý do nên dùng Struct
- Tạo ra một dữ liệu chứa các kiểu dữ liệu cơ sở như Int, String, Double...
- Hoàn toàn không cần phải sử dụng tới tham chiếu khi mà dữ liệu đơn thuần chỉ có chứa các properties giá trị
- Chọn struct nếu không có nhu cầu kế thừa các Struct khác.
- Tạo ra được nhiều đối tượng với những thuộc tính khác nhau có kiểu dữ liệu cơ sở như Int, Float, String, ...
- Khi làm việc đa luồng. Ví dụ kết nối database được thực hiện trên một luồng song với luồng Main, việc sử dụng Struct an toàn hơn do nó có thể copy giá trị từ luồng này sang luồng khác.
- Đảm bảo không có phần nào trong code có được tham chiếu tới đối tượng của chúng ta trừ khi ta truy xuất thẳng tới chúng. Do đó, dễ quản lý, việc kiểm soát giá trị đối tượng khi bị thay đổi cũng trở nên đơn giản hơn.
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
- Bài 1: Tổng quan ngôn ngữ Swift
- Bài 2: Hướng dẫn cài đặt Xcode và chạy một playground
- Bài 3: Những cú pháp cơ bản trong swift
- Bài 4: Kiểu dữ liệu
- Bài 5: Toán tử trong ngôn ngữ lập trình Swift
- Bài 6: Câu lệnh rẽ nhánh trong swift – Decision Making
- Bài 7: Chuỗi ký tự trong Swift - Character và String
- Bài 8: Vòng lặp trong swift – Loops
- Bài 9: Mảng Array trong swift
- Bài 10: Dictionary trong swift
- Bài 11: Optional trong Swift
- Bài 12: Functions trong swift
- Bài 13: Closure trong swift
- Bài 14: Enumeration trong swift
- Bài 15: Struct trong swift
- Bài 16: Classes trong swift
- Bài 17: Properties trong swift
- Bài 18: Methods trong swift
- Bài 19: Subscripts trong swift
- Bài 20: Inheritance trong swift
- Bài 21: Initialization trong swift
- Bài 22: Deinitialization trong swift
- Bài 23: ARC trong swift
- Bài 24: Type casting trong swift
- Bài 25: Extensions trong swift
- Bài 26: Protocols trong swift
- Bài 27: Generics trong swift
- Bài 28: Access control trong swift