Mục lục bài viết
Kiểu chuỗi: String
Một chuỗi là đoạn text được đặt trong cặp dấu nháy kép: “”
Ví dụ
1 var name: String = "Swift"
Kiểu kí tự: Character
Một kí tự được đặt trong dấu nháy kép: “” gọi là Character. Nếu từ hai kí tự trở lên trình biên dịch sẽ báo lỗi.
Ví dụ:
1 var alphabet: Character = "A"
Kiểu logic: Bool, nhận giá trị true/ false
Kiểu giá trị chỉ xét tính đúng/ sai thì được gọi là Bool, trong đó true là đúng, false là sai.
Ví dụ:
1 var isYoung: Bool = true.
Kiểu số:
Kiểu số nguyên: Int
Ví dụ:
1 var age: Int = 20
Kiểu số thực: Float, Double
Ví dụ Float:
1 var pi: Float = 3.14
Ví dụ Double
1 var salary: Double = 10000.001
Float và Double chỉ khác nhau về phạm vi kiểu dữ liệu. Phạm vi kiểu dữ liệu Double lớn hơn phạm vi kiểu dữ liệu Float.
Kiểu dữ liệu Tuple
Ngoài những kiểu dữ liệu nguyên thủy, Swift còn cung cấp kiểu dữ liệu Tuple để nhóm nhiều giá trị khác nhau thành một biến duy nhất.
Đối với kiểu dữ liệu Tuple, chúng ta vẫn khai báo như bình thường. Tuy nhiên trong phần kiểu dữ liệu chúng ta sẽ nhóm các kiểu dữ liệu chúng ta muốn với nhau. Ví dụ:
Mình có 1 biến coordinates sẽ quản lý 1 tọa độ có 2 giá trị là x, y.
1 var coordinates: (Float,Float) = (0.1, 0.4)
Ngoài ra, chúng ta cũng có cách để khai báo tường minh hơn. Đó là, ở phần kiểu dữ liệu chúng ta cũng đặt tên quản lý từng thuộc tính trong cái nhóm dữ liệu đó. Ví dụ:
1 var coors: (x: Int, y: Int) = (1,2)
Đối với biến coordinates ở trên, khi chúng ta muốn gọi giá trị 0.1 hoặc 0.4 thì chúng ta sẽ lấy tên biến và gọi đến index là 0 hoặc 1.
( index 0 có giá trị là 0.1, index 1 có giá trị là 0.2).
1
2
3
4
5
6
7 var coordinates: (Float, Float) = (0.1, 0.4)
// in ra x có giá tri là 0.1
print(coordinate.0)
//in ra y có giá trị là 0.2
print(coordinate.1)
//in ra cả x và y
print(coordinate)
Còn đối với biến coors ở dưới, chúng ta muốn lấy 1 trong 2 thuộc tính của nhóm dữ liệu đó thì chúng ta gọi theo tên thuộc tính.
1
2
3
4 var coors: (x: Int, y: Int) = (1, 2)
print(coors)
hoặc
print(coor.x, coors.y)
Phạm vi kiểu dữ liệu:
Type | Typical Bit Width | Typical Range |
Int8 | 1byte | -127 to 127 |
UInt8 | 1byte | 0 to 255 |
Int32 | 4bytes | -2147483648 to 2147483647 |
UInt32 | 4bytes | 0 to 4294967295 |
Int64 | 8bytes | -9223372036854775808 to 9223372036854775807 |
UInt64 | 8bytes | 0 to 18446744073709551615 |
Float | 4bytes | 1.2E-38 to 3.4E+38 (~6 digits) |
Double | 8bytes | 2.3E-308 to 1.7E+308 (~15 digits) |
Lưu ý tất cả các dữ liệu trong Swift phải viết in hoa chữ cái đầu.
Ép kiểu dữ liệu
Swift là ngôn ngữ lập trình rất chặt chẽ trong việc khai báo kiểu dữ liệu, chuyển đổi kiểu dữ liệu nên kiểu dữ liệu của biến hoặc hằng sau khi khai báo sẽ không thể thay đổi hoặc pha trộn lẫn nhau. Để có thể thay đổi kiểu dữ liệu cần sử dụng hàm chuyển đổi ép kiểu, dưới đây là một số dạng ép kiểu hay sử dụng trong lập trình swift:
Tổng quát: Kiểu cần ép sang ( giá trị truyền vào).
Một số ví dụ:
- Ép kiểu từ số thực sang số nguyên
1 Int(1.2) // kết quả: 1
2. Ép kiểu từ số sang số chuỗi
1 String(30) // kết quả: "30"
3. Ép kiểu từ chuỗi sáng số
- Theo cách thông thường
1 Int("2020") //kết quả: 2020
- Đối với kiểu String, có một method là tolnt() để chuyển kiểu dữ liệu từ chuỗi sang số
1
2 var age: String = "20"
age.toInt() // kết quả: 20
Trong nhiều trường hợp ép kiểu sẽ không thành công, ví dụ một chuỗi “ABC”, chuỗi này sẽ không thể ép thành số.
Để xử lý các trường hợp trên chúng ta sử dụng cần phải phòng hờ lỗi, và cho nó một giá trị mặc định nếu phép tính trả về nil.
1
2 var chuoi: String = "ABC"
print(chuoi.toINT() ?? 0)
Sử dụng ?? để set giá trị mặc định nếu trước nó trả về nil
Bài tập :
Thực hành khai báo biến quản lý các thông tin của đối tượng sau (đầy đủ kiểu dữ liệu):
Một khách hàng có các thông tin cần được quản lý gồm có:
- Họ tên khách hàng (String)
- Mã khách hàng (Int)
- Giới tính (Bool)
- Ngày tháng năm sinh (Character).
- Quê quán ( String).
- Số điện thoại ( Int)
- Email (String)
- Tình trạng hôn nhân (Character)