CHƯƠNG 2: NGÔN NGỮ LẬP TRÌNH SWIFT
2.3. Các kiểu dữ liệu trong ngôn ngữ lập trình Swift
Swift cung cấp đầy đủ các kiểu dữ liệu như trong Objective-C. Có các kiểu dữ liệu cơ bản sau:
• Character: dùng để chứa ký tự
• String: dùng để chứa chuỗi
• Int: dùng để chứa các số nguyên
• Float: dùng để chứa các số có giá trị thập phân
• Double: như kiểu Float nhưng có phần thập phân chính xác hơn
• Bool: kiểu logic, mang 2 giá trị true hoặc false
Swift cũng cung cấp kiểu collection, Array và Dictionary. Trong Swift, chúng ta không cần khai báo kiểu dữ liệu sẽ dùng.
Bạn có thể gán kiểu dữ liệu khi khai báo một biến hay hằng số mà bạn đã biết kiểu dữ liệu sẽ được lưu.
Ví dụ:
2.3.1. Xử lý Chuỗi (String)
Các thao tác thường dùng với chuỗi:
• Tạo chuỗi rỗng: có thể dùng “” hoặc String()
• Kiểm tra chuỗi rỗng: dùng <ten chuoi>.isEmpty . Hàm này sẽ trả về kết quả true hoặc false
• Đếm độ dài chuỗi: countElements(<ten chuoi>)
• Nối 2 chuỗi: dùng toán tử +
• So sánh 2 chuỗi: dùng ==
• Truyền biến vào chuỗi: dùng "\(<ten b
2.3.2. Ép kiểu dữ liệu
Swift là loại ngôn ngữ lập trình Strongly Typed Language nên kiểu giá trị của biến/hằng sau khi khai báo sẽ không thể thay đổi hoặc pha trộn lẫn nhau, bạn buộc phải thực hiện ép kiểu nếu thực hiện những phép toán giữa 2 giá trị khác kiểu dữ liệu.
• Chuyển từ Chuỗi sang Số: <chuoi>.toInt()
• Chuyển từ Số sang Chuỗi: String(<chuoi>)
• Chuyển từ số Tự nhiên sang số Thực: Double(<so>)
• Chuyển từ số Thực sang số Tự nhiên: Int(<so>) Ví dụ:”
2.3.3. Mảng (Array) và Từ điển (Dictionary)
• Mảng (Array): là tập hợp các phần tử có cùng kiểu dữ liệu.
• Từ điển (Dictionary): là kiểu tập hợp trong đó có hai thành phần chính liên hệ với nhau là khóa (key) và giá trị (value).
Cả hai đều sử dụng dụng cặp ngoặc vuông (brackets) “[ ]” để khai báo. Tuy nhiên có sự khác nhau trong khai báo cũng như cách sử dụng của 2 kiểu này.
2.3.4. Mảng (Array)
• Khai báo Mảng: var <ten mang> = [<phan tu 1>,<phan tu 2>,...,<phan tu n>]
• Truy xuất đến các phần tử trong mảng: <ten mang>[<stt phan tu>]
• Thêm phần tử vào cuối mảng: <ten mang> += [<phan tu>]
• Thay giá trị phần tử trong mảng: <ten mang>[<stt phan tu>] = <gia tri>
Phần tử đầu tiên trong mảng có số thứ tự bắt đầu là 0. Bạn có thể gán kiểu dữ liệu cho mảng khi khai báo nếu biết chính xác kiểu dữ liệu mà mảng sẽ chứa.
2.3.5. Mảng 2 chiều (Array of Array):
Khai báo:
• Lấy giá trị phần tử: <ten mang>[<stt phan tu>]
• Lấy giá trị của phần tử trong phần từ: <ten mang>[<stt phan tu>][<stt phan tu ben trong>]
• Lấy giá trị phần tử cuối: <ten mang>.last
• Thay đổi giá trị phần tử: <ten mang>[<stt phan tu>][<stt phan tu ben trong>] = <gia tri moi>
• Thêm phần tử: <ten mang> = [ [<phan tu m.1>,<phan tu m.2>, ... ,<phan tu m.n>] ]
• Đếm số phần tử: <ten mang>.count Ví dụ:
2.3.6. Từ điển (Dictionary)
• Khai báo: var <ten tu dien> = [<key 1>:<value 1>,<key 2>:<value 2>,...,<key n>:<value n> ]
• Truy xuất: <ten tu dien>[<key>]
• Thêm mới: <ten tu dien>[< key>] = <gia tri>
• Thay đổi giá trị: <ten tu dien>[<key>] = <gia tri>
• Xoá key: <ten tu dien>.removeValueForKey(<key>)
Bạn có thể gán kiểu dữ liệu cho mảng khi khai báo nếu biết chính xác kiểu dữ liệu mà mảng sẽ chứa.
Ví dụ:
2.3.7. Từ điển 2 chiều
Khai báo:
• Truy xuất: <tên từ điển>:[<từ khoá>]
• Truy xuất 1 giá trị bên trong: <tên từ khoá>:[<từ khoá>]![stt phần tử]
• Thêm mới: <tên từ điển>[<khoá mới>] = [<giá trị m.1>, <giá trị m.1>, ... , <giá trị m.n>]
• Thay đổi giá trị:
Ví dụ: