Rate this post

Dart Generics cũng giống như Dart collection, được sử dụng để lưu trữ dữ liệu đồng nhất. Như chúng ta đã thảo luận trong các tính năng của Dart, nó là một ngôn ngữ được nhập tùy chọn .

Theo mặc định, Bộ sưu tập Dart là loại không đồng nhất. Nói cách khác, một bộ sưu tập Dart duy nhất có thể chứa các giá trị của một số kiểu dữ liệu. Tuy nhiên, một bộ sưu tập Dart cũng có thể được lưu trữ các giá trị đồng nhất hoặc các giá trị cùng loại.

Các bài viết liên quan:

Dart Generics cung cấp cơ sở để thực thi giới hạn về kiểu dữ liệu của các giá trị có thể được bộ sưu tập lưu trữ. Những bộ sưu tập này có thể được gọi là bộ sưu tập kiểu an toàn .

An toàn kiểu là một tính năng độc đáo của lập trình Dart, đảm bảo rằng một khối bộ nhớ chỉ có thể chứa dữ liệu của một kiểu dữ liệu cụ thể.

Các generic là một cách để hỗ trợ triển khai kiểu an toàn cho tất cả các bộ sưu tập Dart. Cặp dấu ngoặc nhọn được sử dụng để khai báo tập hợp kiểu an toàn. Dấu ngoặc nhọn bao gồm các kiểu dữ liệu của tập hợp. Cú pháp được đưa ra dưới đây.

Cú pháp

Collection_name <data_type> Recogfier =  new  Collection_name <data_type> 

Chúng ta có thể thực hiện triển khai kiểu an toàn cho các đối tượng Dart khác nhau như Danh sách, Hàng đợi, Bản đồ và Tập hợp. Nó cũng được hỗ trợ bởi tất cả việc triển khai các kiểu tập hợp xác định ở trên. Cú pháp được đưa ra dưới đây.

Ví dụ – Danh sách Generics

void main() {
  List<String> logStr = [];
  logStr.add("CHECK");
  logStr.add("ERROR");
  logStr.add("INFO");

  //iterating across list
  for (String i in logStr) {
    print(i);
  }
}

Giải trình:

Chúng tôi đã tạo một danh sách chứa kiểu chuỗi an toàn và sử dụng phần tử add vào nó bằng cách sử dụng hàm add () .

Nếu chúng tôi cố gắng chèn giá trị khác với giá trị được chỉ định thì nó sẽ bị lỗi biên dịch. Hãy hiểu ví dụ sau:

Ví dụ – 2

void main() {
  List <String> logStr = [];   
   logStr.add(511);   // Add integer value  
   logStr.add("ERROR");   
   logStr.add("INFO");   
    
   //iterating across list   
   for (String i in logStr) {   
      print(i);   
   }  
}

Hãy hiểu một ví dụ khác –

Ví dụ – Tập hợp Chung

void main() {   
   Set <int>numberSet = new  Set<int>();   
   numberSet.add(10);   
   numberSet.add(20);   
   numberSet.add(30);   
   numberSet.add(40);  
   numberSet.add(50);   
     
   // numberSet.add("");   
  // compilation error;   
   print("Default implementation  :${numberSet.runtimeType}");    
     
   for(var i in numberSet) {   
      print(i);   
   }   
}  

Ví dụ – Generics Queue

import 'dart:collection';   
void main() {   
   Queue<int> queue = new Queue<int>();   
   print("Default implementation ${queue.runtimeType}");    
   queue.addLast(100);   
   queue.addLast(205);   
   queue.addLast(315);   
   queue.addLast(470);   
   // Remove the first element of queue   
   queue.removeFirst();    
     
   for(int i in queue){   
      print(i);   
   }   
}  

Generic Map

Như chúng ta biết rằng việc khai báo bản đồ yêu cầu khóa và giá trị. Cú pháp được đưa ra dưới đây.

Cú pháp:

Map <Key_type, value_type>  

Ví dụ –

void main() {   
   Map <String, String>m={'name':'Joseph','Rollno':'Std1001'};   
   print('Map :${m}');   
}  

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now