Các phép toán trong Dart (Toán tử Dart/Flutter)
Các phép toán trong Dart (các toán tử trong Dart) chính là các phương thức method
được định nghĩa trong các lớp với một cú pháp đặc biệt. Chẳng hạn, khi bạn sử dụng các toán tử như x == y
, thì cũng chính là bạn đang gọi phương thức x. == (y)
để so sánh đẳng thức.
Các phép toán trong Dart gồm có các loại sau:
- Toán tử số học
- Toán tử tăng và giảm
- Toán tử so sánh
- Toán tử logic
- Toán tử thao trên
bit
- Toán tử
null safety
Toán tử số học trong Dart
Toán tử số học có tác dụng đối với kiểu dữ liệu số nguyên int
, số thực double
và kiểu số num
nói chung.
+
Phép cộng. Ví dụ3 + 1
kết quả4
-
Phép trừ. Ví dụ5 - 6
kết quả-1
*
Phép nhân. Ví dụ3 * 3
kết quả9
/
Phép chia. Ví dụ5 / 6
kết quả0.8333333333333334
~/
Phép chia lấy phần nguyên (tương tự phép toándiv
trong các ngôn ngữ khác). Ví dụ6 ~/ 4
kết quả1
%
Phép chia modulo (lấy phần dư, tương tự phép toánmod
trong các ngôn ngữ khác). Ví dụ6 % 4
kết quả2
-(biểu_thức)
Đổi dấu kết quả củabiểu_thức
. Ví dụ-(5 - 6)
cho kết quả1
Toán tử tăng và giảm trong Dart
++var
- Tăng giá trị của biến
var
lên1
, tương đương với phép gánvar = var + 1
hoặcvar +=1
. - Tuy nhiên, toán tử
++
có thể đặt trong các biểu thức tính toán, khi đó việc tăng giá trị này được tiến hành trước khi thực hiện tính toán biểu thức. Ví dụ sau thì biểu thứcb+(++a)
có giá trị16
- Tăng giá trị của biến
void main() { int a = 5; int b = 10; print(b +(++a)); //cho kết quả 16 print(a); //a vẫn có giá trị 6 }
var++
- Tăng giá trị của biến
var
lên1
, tương đương với phép gánvar = var + 1
hoặcvar +=1
. - Tuy nhiên, toán tử
++
có thể đặt trong các biểu thức tính toán, khi đó việc tăng giá trị này được tiến hành sau khi thực hiện biểu thức. Ví dụ sau thì biểu thứcb+(a++)
có giá trị15
dù sau đó biếna
vẫn được tăng thêm1
thành giá trị6
.
- Tăng giá trị của biến
void main() { int a = 5; int b = 10; print(b +(a++)); //cho kết quả 15 print(a);//a vẫn có giá trị 6 }
--var
Tương tự++var
nhưng là giảm đi1
.var--
Tương tựvar++
nhưng là giảm đi1
.
Phép gán trong Dart
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;
Mời các bạn xem chi tiết về phép gán trong bài Bài 2. Biến và các kiểu dữ liệu trong Dart
Phép gán tăng, giảm giá trị
var += x
tăng biếnvar
lênx
đơn vịvar -= x
giảm biếnvar
lênx
đơn vị
void main() { var a = 5; print(a+=1); //cho kết quả 6 print(a-=4); // cho kết quả 2 }
Toán tử so sánh trong Dart
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
==
So sánh bằng. Ví dụ5 == 5
kết quảtrue
,5 == 6
kết quảfalse
!=
So sánh không bằng. Ví dụ5 != 5
kết quảfalse
,5 != 6
kết quảtrue
>
So sánh lớn hơn. Ví dụ5 > 5
kết quảfalse
,6 > 5
kết quảtrue
<
So sánh nhỏ hơn. Ví dụ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
Toán tử logic Dart
|
Phép logic hoặc (toán tửor
trong Toán học),a | b
kết quảtrue
nếua
hoặcb
làtrue
&
Phép logic và (toán tửand
trong Toán học),a & b
kết quảtrue
nếua
vàb
đềutrue
!(biểu_thức)
Phép phủ định (toán tửnot
trong Toán học)!a
nếua
làtrue
thì kết quả phép toán làfalse
Chi tiết về các toán tử logic, bạn có thể xem ở bài Kiểu logic bool
trong Dart/Flutter. Dưới đây là bảng giá trị chân lý của các phép toán and
, or
và not
trong Toán học.
Toán tử điều kiện
điều_kiện ? biểu_thức_1 : biểu_thức_2
Nếu biểu_thức_điều_kiện
đúng thì trả về giá trị củabiểu_thức_1
, ngược lại là biểu_thức_2
void main() { var a = 1; var b = 2; print((a > b) ? a : b); //kết quả trả về 2 }
biểu_thức_1 ?? biểu_thức_2
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
Một số phép toán trong Dart khác
[]
- Truy cập phần tử của danh sách, mảng (kiểu
list
) - Ví dụ với
List
temp = [1,12,31]
thìtemp[1]
trả về phần tử thứ hai (có index bằng 1 vì index của phần tử đầu tiên là 0) của mảng, là12
.
- Truy cập phần tử của danh sách, mảng (kiểu
.
Truy cập phương thức, thuộc tính đối tượngas
Chuyển kiểu:(var as MyClass)
is
Kiểm tra kiểu:(var is MyClass)
is!
Kiểm tra kiểu:(var is! MyClass)