Trong ngôn ngữ lập trình thường có hỗ trợ các tập toán tử. Vậy các toán tử trong ngôn ngữ lập trình Swift là gì? Gồm có những dạng nào? Hãy cùng chúng tôi tìm hiểu ở bài viết dưới đây.
Một toán tử được hiểu là một ký tự, ký hiệu để viết và sử dụng trong một biểu thức hay một phép toán logic. Đối với ngôn ngữ lập trình Swift có thể chia các loại toán tử thành 7 loại phổ biến và thường gặp nhất:
- Toán tử số học
- Phép gán trong Swift
- Toán tử so sánh
- Toán tử Logic
- Biểu thức điều kiện
- Toán tử phạm vi
- Toán tử Optional khi khai báo biến
Toán tử số học trong Swift
+,-,*,/,%
Ví dụ:
“+” Phép cộng 4+6 kết qủa 10
“-“ Phép trừ 5-4 bằng 1
1 + 2 //kêt quả: 3
3 – 1 //kêt quả: 2
5*5 //kêt quả: 25
8/2 //kêt quả: 4
Nội dung
Phép gán trong Swift
Phép gán hay còn gọi là toán tử gán giá trị chính là =, có chức năng thiết lập, biểu thị hoặc thay đổi giá trị của biểu thức bên phải vào biến ở bên trái của toán tử.
biến = biểu_thức;
var a = 1 + 2 + 3 + 4;
Ngoài trường hợp trên, toán tử gán vẫn có những trường hợp kết hợp với toán tử khác ở phía trước dưới dạng toán_tử_trước= như +=, -=, *=, /* … Tức là bạn phải để biểu thức và biến ở bên phải thực hiện toán tử trước, sau đó giá trị được bao nhiêu thì mới 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
== | 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 trong Swift
|| | Phép logic hoặc, a || b kết quả true nếu a hoặc b là true |
---|---|
&& | Phép logic và, a && b kết quả true nếu a và b đều true |
! | biểu_thức Phép phủ định !a nếu a là true 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
Như bạn có thể thấy, biểu thức trên là được kết hợp từ 3 biểu thức nhỏ hơn hay còn gọi là biểu thức con. Nếu điều kiện đúng thì giá trị sẽ được 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
Ngôn ngữ lập trình Swift hỗ trợ toán tử … và ..< liên quan đến phạm vị giá trị, giúp bạn nhanh chóng có được một chuỗi các giá trị khác nhau.
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
Bạn cần phải lưu ý trước khi khai báo, sử dụng biến thì bắt buộc phải gán cho nó một giá trị. Trong một số trường hợp, nhất là đối với 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)