- Phép toán số học
- Phép gán trong Dart
- Phép so sánh
- Phép toán 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
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 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
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ử ...
và ..<
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ỗiKhắ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); //nilToá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)