Các toán tử là các ký hiệu để viết ra một biểu thức, giống như nhiều ngôn ngữ lập trình hiện đại khác Swift có thể chi các loại toán tử thành 3 loại chính đó là:

  • Toán tử một ngôi, tức là toán tử đó tác dụng tác dụng vào chỉ một số hạng biểu thức viết sau nó ví dụ - trong (-number), hoặc phủ định ! trong !done
  • Toán tử hai ngôi: toán tử cần 2 số hạng để đưa ra kết quả, như phép cộng, trừ ... a + b
  • Toóa điều kiện ba ngôi: ví dụ dieukien ? ketqua1 : ketqua2, biểu thức này trả về giá trị ketqua1 hay ketqua2 tùy thuộc vạo dieukien. Chi tiết phần dưới

Toán tử số học trong Swift

Toán tử Ý nghĩa
+ Phép cộng. 5 + 6 kết quả 11
- Phép trừ. 5 - 6 kết quả -1
* Phép nhân
var a = 5;
var b = 6;
print(a * b); //30
/ Phép chia. 5 / 6.0 kết quả 0.8333333333333334
% Phép chia modulo (lấy phần dư) 6 % 4 kết quả 2
-biểu_thức Đổi dấu kết quả biểu thức -(a + b) kết quả -a - b

Phép gán trong Swift

Phép gán là =, để thực hiện gán giá trị biểu thức bên phải vào biến ở phía bên trái toán tử.

biến = biểu_thức;
var a = 1 + 2 + 3 + 4;

Phép toán gán có trường hợp viết phức tạp kết hợp cùng một toán tử khác phía trước dạng toán_tử_trước= như +=, -=, *=, /* ... Điều này có nghĩa là biến và biểu thức bên phải thực hiện toán tử phía trước, giá trị được bao nhiêu gán vào biến.

a *= 5;   // Tương đương a = a * 5;
a /= 5;   // Tương đương a = a / 5;
a += 5;   // Tương đương a = a + 5;
a -= 5;   // Tương đương a = a - 5;

Toán tử so sánh trong Swift

Các toán tử này thực hiện trên biểu thức logic, kết quả là true hoặc false

Toán tử Ý nghĩa
== So sánh bằng 5 == 5 kết quả true, 5 == 6 kết quả false
!= So sánh khác 5 != 5 kết quả false, 5 != 6 kết quả true
> So sánh lớn hơn 5 > 5 kết quả false, 6 > 5 kết quả true
< So sánh nhỏ hơn 5 < 5 kết quả false, 5 > 6 kết quả true
<= So sánh nhỏ hơn hoặc bằng
>= So sánh lớn hơn hoặc bằng
=== So sánh bằng object1 === object2 so sánh 2 đối tượng đều trỏ đến một đối tượng cụ thể (lập trình hướng đối tượng phần sau)
!== So sánh bằng object1 !== object2 kiểm tra hai đối tượng này có khác nhau không

Toán tử logic Swift

Toán tử Ý nghĩa
|| Phép logic hoặc, a || b kết quả true nếu a hoặc btrue
&& Phép logic và, a && b kết quả true nếu ab đều true
!biểu_thức Phép phủ định !a nếu atrue thì kết quả phép toán là false

Biểu thức điều kiện, toán tử 3 ngôi trong Swift

biểu_thức_điều_kiện ? biểu_thức_1 : biểu_thức_2

Biểu thức tổng hợp trên kết hợp từ ba biểu thức con. Nếu điều kiện là đúng thì giá trị tính theo biểu_thức_1, ngược lại là biểu_thức_2

var a = 4;
var b = 10;
var d = (a > b) ? a : b;
//Kết quả d = 10
biểu_thức_1 ?? biểu_thức_2

Biểu thức kết hợp với ??, nếu biểu_thức_1 khác null thì lấy biểu_thức_1, ngược lại lấy giá trị từ biểu_thức_2

Toán tử phạm vi .. trong Swift

Swift hỗ trợ hai toán tử .....< liên quan đến phạm vị giá trị, giúp nhanh chóng có được một giải các giá trị.

Tạo khoảng đóng các giá trị ...

Khi bạn viết (a ... b) với điều kiện a không được lớn hơn b. Thì biểu thức này biểu diện một khoảng giá trị trong dãy số nguyên tính từ a cho đến b (nghĩa là kể cả 2 điểm mút a, b)

Tạo khoảng hở các giá trị ..<

Nếu muốn tạo ra một khoảng từ a, đến nhỏ hơn b (nghĩa là bỏ điểm mút b) thì dùng ký hiệu (a..<b). Để ứng dụng kết quả tạo ra các dải số này xem các phần sau, ví dụ duyệt từ 1 đến 100:

for i in (1...100)
{
    print(i, terminator: " ")
}
//Kết quả: 1 2 3 ... 100

Toán tử Optional khi khai báo biến

Khi khai báo biến thông thường, trước khi sử dụng biến phải gán cho nó một giá trị. Tuy nhiên trong nhiều trường hợp, nhất là kỹ thuật lập trình hướng đối tượng sau này nhiều khi bạn muốn biến đó nhận giá trị rỗng nil, một biến thông thường nếu gán giá trị nil cho nó sẽ gây lỗi biên dịch.

Nếu muốn biến đó có thể nhận giá trị nil thì dùng kỹ thuật Option, ví dụ:

var studentname:String = "Student";
studentname = "ABC"  //Gán chuỗi OK
studentname = nil;   //Lỗi
Khắc phục tình trạng này bằng cách khai báo với Optional thêm ký hiệu ? sau kiểu của biến, như String? Int? Float? Double?
var studentname:String? = "Student";
studentname = "ABC"  //Gán chuỗi OK
studentname = nil;   //Gán nil OK

Nếu khai báo Optional mà không khởi tạo giá trị thì mặc định biến đó sẽ nhận giá trị nil (rỗng)

var studentname:String?
print(studentname); //nil
Toán tử ?? kiểm tra nil

Trong biểu thức, muốn: nếu biến a khác nil thì lấy giá trị từ biến a, nếu khác thì lấy một giá trị mặc định "xyz" thì làm thế nào?

var a:String? = "String A"
var b:String = ""

b = a ?? "XYZ"  //nếu a != null thì b = a, nếu nil thì b = XYZ
print(b)

Đăng ký nhận bài viết mới