Dart là một ngôn ngữ lập trình hướng đối tượng mã nguồn mở, có mục đích chung với cú pháp kiểu C do Google phát triển vào năm 2011 . Mục đích của lập trình Dart là tạo giao diện người dùng frontend cho web và ứng dụng dành cho thiết bị di động. Nó đang được phát triển tích cực, được biên dịch sang mã máy gốc để xây dựng ứng dụng di động, lấy cảm hứng từ các ngôn ngữ lập trình khác như Java, JavaScript, C # và Typed mạnh. Vì Dart là một ngôn ngữ biên dịch nên bạn không thể thực thi code của mình trực tiếp; thay vào đó, trình biên dịch phân tích cú pháp nó và chuyển nó thành code máy.

Nó hỗ trợ hầu hết các khái niệm chung của ngôn ngữ lập trình như lớp, giao diện, hàm, không giống như các ngôn ngữ lập trình khác. Ngôn ngữ Dart không hỗ trợ mảng trực tiếp. Nó hỗ trợ tập hợp, được sử dụng để sao chép cấu trúc dữ liệu như mảng, generic và kiểu tùy chọn.

Ví dụ sau đây cho thấy lập trình Dart đơn giản.

void main() {  
  for (int i = 0; i < 5; i++) {  
    print('hello ${i + 1}');  
  }  
}  

1. Kiểu dữ liệu

Dart là một ngôn ngữ lập trình Strongly Typed. Nó có nghĩa là, mỗi giá trị bạn sử dụng trong ngôn ngữ lập trình của mình có một kiểu là chuỗi hoặc số và phải được biết chính xác là kiểu dữ liệu gì trước khi code được biên dịch. Ở đây, chúng ta sẽ thảo luận về các kiểu dữ liệu cơ bản phổ biến nhất được sử dụng trong ngôn ngữ lập trình Dart.

Loại dữ liệuThí dụMô tả
ChuỗiString myName = cafedev.vn;Nó chứa văn bản. Trong phần này, bạn có thể sử dụng dấu ngoặc kép đơn hoặc kép. Khi bạn quyết định dấu ngoặc kép, bạn phải nhất quán với lựa chọn của mình.
num, int, doubleint age = 25;double = 125,50;Kiểu dữ liệu num là viết tắt của một số. Dart có hai loại số:Số nguyên (Là một số không có chữ số thập phân.)Double (Nó là một số có chữ số thập phân.)
Booleanbool var_name = true;Hoặcbool var_name = false;Nó sử dụng từ khóa bool để biểu thị giá trị Boolean true và false.
vậtPerson = Persion()Nói chung, mọi thứ trong Dart là một đối tượng (ví dụ: Số nguyên, Chuỗi). Nhưng một đối tượng cũng có thể phức tạp hơn.

2. Các biến và hàm

Các biến là không gian tên trong bộ nhớ lưu trữ các giá trị. Tên của một biến được gọi là định danh(identifiers). Chúng là nơi chứa dữ liệu, có thể lưu trữ giá trị của bất kỳ kiểu nào. Ví dụ:

  1. var myAge =  50 ;  

Ở đây, myAge là một biến lưu trữ giá trị số nguyên 50. Chúng ta cũng có thể cho nó là int và double. Tuy nhiên, Dart có một tính năng Type Inference, suy luận các loại giá trị. Vì vậy, nếu bạn tạo một biến với từ khóa var , Dart có thể suy ra biến đó thuộc loại số nguyên.

Bên cạnh biến, Hàm là một tính năng cốt lõi khác của bất kỳ ngôn ngữ lập trình nào. Hàm là một tập hợp các câu lệnh thực hiện một nhiệm vụ cụ thể. Chúng được tổ chức thành các khối mã logic có thể đọc được, có thể bảo trì và có thể tái sử dụng. Khai báo hàm chứa tên hàm, kiểu trả về và các tham số. Ví dụ sau giải thích hàm được sử dụng trong lập trình Dart.

//Function declaration  
num addNumbers(num a, num b) {  
    // Here, we use num as a type because it should work with int and double both.  
    return a + b;  
}  
var price1 = 29.99;  
var price2 = 20.81;  
var total = addNumbers(price1, price2);  
var num1 = 10;  
var num2 = 45;  
var total2 = addNumbers(num1, num2);

3. Operators

Ngôn ngữ Dart hỗ trợ tất cả các toán tử, vì bạn đã quen thuộc với các ngôn ngữ lập trình khác như C, Kotlin và Swift. Tên của Operators

 được liệt kê dưới đây:

  • Số học
  • Bằng
  • Tăng và giảm
  • Logical
  • So sánh

4. Ra quyết định và các vòng lặp

Ra quyết định là một tính năng cho phép bạn đánh giá một điều kiện trước khi các câu lệnh được thực thi. Ngôn ngữ Dart hỗ trợ các loại câu lệnh ra quyết định sau:

  • Câu lệnh if
  • Câu lệnh if-else
  • Chuyển đổi câu lệnh

Sơ đồ dưới đây giải thích rõ ràng hơn.

Thí dụ

void main() {   
   var num = 12;   
   if (num % 2 = = 0) {   
      print("Number is Even.");   
   } else {   
      print("Number is Odd.");   
   }   
}  

Các vòng lặp được sử dụng để thực thi một khối code lặp đi lặp lại cho đến khi một điều kiện được chỉ định trở thành đúng. Ngôn ngữ Dart hỗ trợ các loại câu lệnh lặp sau:

  • for
  • for..in
  • while
  • do..while

Sơ đồ dưới đây giải thích rõ ràng hơn.

Thí dụ

void main() {   
   var name = ["Peter", "Rinky Ponting", "Abhishek"];   
     
   for (var prop in name) {   
      print(prop);   
   }   
}  

5. Bình luận(Comments)

Nhận xét là những dòng code không thực thi được . Chúng là một trong những khía cạnh chính của tất cả các ngôn ngữ lập trình. Mục đích của việc này là cung cấp thông tin về dự án, biến hoặc một hoạt động. Có ba loại nhận xét trong lập trình Dart:

  • Thực hiện các nhận xét định dạng: Đó là một nhận xét dòng đơn (//)
  • Khối nhận xét: Đó là một nhận xét nhiều dòng (/*…*/)
  • Nhận xét Tài liệu: Đây là nhận xét tài liệu được sử dụng để mô tả cho thành viên và các kiểu (///)

6. Tiếp tục và Phá vỡ(Continue and Break)

Dart cũng đã sử dụng từ khóa Continue và Break trong vòng lặp, và ở những nơi khác nó được yêu cầu. Câu lệnh continue cho phép bạn bỏ qua đoạn code còn lại bên trong vòng lặp và ngay lập tức chuyển đến bước lặp tiếp theo của vòng lặp. Chúng ta có thể hiểu nó từ ví dụ sau.

Thí dụ 

void main() {   
  for(int i=1;i<=10;i++){    
    if(i==5){    
      print("Hello");  
      continue; //it will skip the rest statement        
    }    
    print(i);    
  }   
}  

Câu lệnh break cho phép bạn kết thúc hoặc dừng dòng hiện tại của một chương trình và tiếp tục thực hiện sau phần thân của vòng lặp. Ví dụ sau đây sẽ giải thích chi tiết.

Thí dụ

void main() {   
  for(int i=1;i<=10;i++){    
    if(i==5){    
      print("Hello");  
      break;//it will terminate the rest statement        
    }    
    print(i);    
  }   
} 

7. Từ khóa Final và Const

Chúng ta có thể sử dụng một từ khóa Final để hạn chế người dùng. Nó có thể được áp dụng trong nhiều ngữ cảnh, chẳng hạn như biến, lớp và phương thức.

Từ khóa Const dùng để khai báo hằng. Chúng ta không thể thay đổi giá trị của từ khóa const sau khi gán nó.

Thí dụ

void main() {   
  final a = 100;  
  const pi = 3.14;  
  print(a);  
  print(pi);  
}  

8. Lập trình hướng đối tượng

Dart là một ngôn ngữ lập trình hướng đối tượng, có nghĩa là mọi giá trị trong Dart đều là một đối tượng. Một số cũng là một đối tượng trong ngôn ngữ Dart. Lập trình Dart hỗ trợ khái niệm về các tính năng OOP như đối tượng, lớp, giao diện, v.v.

Đối tượng: Đối tượng là một thực thể, có trạng thái và hành vi. Nó có thể là vật lý hoặc logic. Trong Dart, mọi giá trị đều là một đối tượng, ngay cả những giá trị nguyên thủy như văn bản và số. Dart cũng có thể cho phép bạn xây dựng đối tượng tùy chỉnh của mình để thể hiện các mối quan hệ phức tạp hơn giữa các dữ liệu.

Lớp: Một lớp là một tập hợp các đối tượng. Nó có nghĩa là các đối tượng được tạo ra với sự trợ giúp của các lớp vì mọi đối tượng đều cần một bản thiết kế dựa trên đó bạn có thể tạo một đối tượng riêng lẻ. Một định nghĩa lớp bao gồm những điều sau:

  • Thuộc tính
  • Phương pháp
  • Constructor
  • Getters và setters

Hãy để chúng ta xem một ví dụ, giúp bạn hiểu khái niệm OOP một cách dễ dàng.

class Mobile {  
  // Property Declaration  
  String color, brandName, modelName;  
    
  // Method Creation  
  String calling() {  
    return "Mobile can do call to everyone.";  
  }  
  String musicPlay() {  
    return "Mobile can play all types of Music.";  
  }  
  String clickPicture() {  
    return "Mobile can take pictures.";  
  }  
}  
  
void main() {  
  // Object Creation  
  var myMob = new Mobile();   
    
  // Accessing Class's Property  
  myMob.color = "Black";   
  myMob.brandName = "Apple Inc.";  
  myMob.modelName = "iPhone 11 Pro";  
    
  //Display Output  
  print(myMob.color);  
  print(myMob.modelName);  
  print(myMob.brandName);  
  print(myMob.calling());  
  print(myMob.musicPlay());  
  print(myMob.clickPicture());  
}  

Trong ví dụ trên, chúng ta định nghĩa một lớp Mobile , có ba biến kiểu chuỗi và ba hàm hoặc phương thức. Sau đó, chúng ta tạo một hàm main mà Dart sẽ thực thi đầu tiên khi ứng dụng của bạn khởi động. Bên trong main, chúng ta tạo một đối tượng để truy cập các thuộc tính của lớp. Cuối cùng, chúng ta in đầu ra.

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!