Dart Generic

Dart Generic

Dart adalah bahasa dengan konsep optionally typed language. Collection dengan menggunakan bahasa pemrograman Dart secara default heterogen. Dengan kata lain, satu Collection pada Dart dapat menampung nilai dengan berbagai jenis tipe data. Namun, Collection pada Dart dapat dibuat untuk menampung tipe data yang homogen. Konsep Generic dapat digunakan untuk mencapai hal ini.

Penggunaan Generic memaksa pembatasan pada jenis tipe data nilai atau Object yang dapat ditampung oleh Collection. Collection seperti ini dapat juga disebut sebagai type-safe collections. Konsep type-safe collections akan menjamin satu Object Collection hanya dapat menampung satu jenis tipe data tertentu saja.

Semua Collection pada Dart mendukung implementasi type-safe collections melalui Generic. Sebuah pasangan tanda kurung sudut yang berisi jenis tipe data digunakan untuk mendeklarasikan Collection dengan jenis ini.

Cara Penulisan

Collection<data_type> identifier = new Collection<data_type>();

Implementasi type-safe dari List, Map, Set, dan Queue akan dijelaskan di bawah ini. Fitur ini juga didukung oleh semua implementasi jenis Collection yang ada.

Contoh: Generic List

void main() { 
   List<String> logTypes = new List<String>(); 
   logTypes.add("WARNING"); 
   logTypes.add("ERROR"); 
   logTypes.add("INFO");  
   
   for (String type in logTypes) { 
      print(type); 
   } 
}

Kode di atas akan menghasilkan output berikut:

WARNING
ERROR
INFO

Upaya untuk memasukkan nilai selain tipe data yang ditentukan akan menghasilkan kesalahan pada saat kompilasi. Contoh berikut mengilustrasikan hal tersebut.

Contoh

void main() { 
   List<String> logTypes = new List<String>(); 
   logTypes.add(1); 
   logTypes.add("ERROR"); 
   logTypes.add("INFO"); 
 
   for (String type in logTypes) { 
      print(type); 
   } 
}

Kode di atas akan mengeluarkan output berikut :

lib/main.dart:3:17:
Error: The argument type 'int' can't be assigned to the parameter type 'String'.
   logTypes.add(1); 
                ^
Error: Compilation failed.

Contoh: Generic Set

void main() { 
   Set<int> numberSet = new Set<int>(); 
   numberSet.add(100); 
   numberSet.add(20); 
   numberSet.add(5); 
   numberSet.add(60);
   numberSet.add(70); 
   
   // compilation error;
   // numberSet.add("Tom"); 
    
   print("Implementasi default :${numberSet.runtimeType}");  
   
   for(var no in numberSet) { 
      print(no); 
   } 
}

Kode di atas akan menghasilkan output berikut :

Implementasi default :_LinkedHashSet
100
20
5
60
70

Contoh: Generic Queue

import 'dart:collection'; 
void main() { 
   Queue<int> queue = new Queue<int>(); 
   print("Implementasi default ${queue.runtimeType}");  
   queue.addLast(10); 
   queue.addLast(20); 
   queue.addLast(30); 
   queue.addLast(40); 
   queue.removeFirst();  
   
   for(int no in queue){ 
      print(no); 
   } 
}

Kode di atas akan mengembalikan :

Implementasi default ListQueue
20
30
40

Generic Map

Deklarasi Generic dari Map menentukan tipe data dari Key dan Value.

Cara Penulisan

Map <key_type, value_type>

Contoh

void main() { 
   Map<String,String> m={'name':'Tom','Id':'E1001'}; 
   print('Map :${m}'); 
} 

Kode di atas akan mengembalikan :

Map :{name: Tom, Id: E1001}

Tutorial sebelumnya : Dart Collection
Tutorial setelahnya : Dart Package
Semua Tutorial Dart : Tutorial Dart

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0