Reportar esta app

Description

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ụ:

Tham khảo thêm ngay  Toán tử - Tự học 7

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:

TypeTypical Bit WidthTypical Range
Int81byte-127 to 127
UInt81byte0 to 255
Int324bytes-2147483648 to 2147483647
UInt324bytes0 to 4294967295
Int648bytes-9223372036854775808 to 9223372036854775807
UInt648bytes0 to 18446744073709551615
Float4bytes1.2E-38 to 3.4E+38 (~6 digits)
Double8bytes2.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:

Tham khảo thêm ngay  Đặc điểm của Swift - Tự học 4

Tổng quát: Kiểu cần ép sang ( giá trị truyền vào).

Một số ví dụ:

  1. É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)

Leave a Reply

Your email address will not be published. Required fields are marked *