Mục lục
Toán tử chấm chấm (..) trong Dart
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.


Trong ngôn ngữ lập trình Dart, toán tử dot dot ( .. ) cũng được hiểu là "cascade notation" (ký hiệu xếp tầng). Nó cho phép bạn không lặp lại cùng một mục tiêu nếu bạn muốn gọi một số phương thức trên cùng một đối tượng.
Ví dụ:
dotdot_ex1.dart
void main() {
var list1 = [];
list1..add('One')..add('Two')..add('Three');
print(list1); // [One, Two, Three]
// Same as:
var list2 = [];
list2.add('One');
list2.add('Two');
list2.add('Three');
print(list2); // [One, Two, Three]
}
Ví dụ: Gọi nhiều phương thức của cùng một đối tượng, sử dụng toán tử dot dot giúp code của bạn ngắn hơn.
dotdot_ex2.dart
void main() {
var list1 = [];
list1..add('One')..add('Two')..addAll(['Three', 'Four', 'Five']);
print(list1); // [One, Two, Three, Four, Five]
// Same as:
var list2 = [];
list2.add('One');
list2.add('Two');
list2.addAll(['Three', 'Four', 'Five']);
print(list2); // [One, Two, Three, Four, Five]
// Same as:
var list3 = []..add('One')..add('Two')..addAll(['Three', 'Four', 'Five']);
print(list3); // [One, Two, Three, Four, Five]
}
Trong các ngôn ngữ không hỗ trợ toán tử dot dot, để gọi một dẫy các phương thức liên tiếp nhau thì các phương thức này phải trả về một đối tượng. Chẳng hạn:
without_dotdot_ex1.dart
class Calculator {
double _accumulator = 0;
Calculator(double startValue) {
_accumulator = startValue;
}
Calculator add(double val) {
_accumulator += val;
return this; // Return this object.
}
Calculator subtract(double val) {
_accumulator -= val;
return this; // Return this object.
}
double result() {
return _accumulator;
}
}
void main() {
var calc = Calculator(100);
var result = calc.add(100).subtract(50).subtract(25).result();
print(result); // 125
}
Toán tử dot dot giúp bạn gọi một dẫy các phương thức mà các phương thức này không cần thiết phải trả về một đối tượng. Chúng ta viết lại ví dụ trên.
with_dotdot_ex1.dart
class Calculator {
double _accumulator = 0;
Calculator(double startValue) {
_accumulator = startValue;
}
void add(double val) {
_accumulator += val;
}
void subtract(double val) {
_accumulator -= val;
}
double result() {
return _accumulator;
}
}
void main() {
var calc = Calculator(100);
calc..add(100)..subtract(50)..subtract(25);
var result = calc.result();
print(result); // 125
}