Pemrograman Dart - Perpustakaan
Sebuah perpustakaan dalam bahasa pemrograman merepresentasikan kumpulan rutinitas (sekumpulan instruksi pemrograman). Dart memiliki sekumpulan pustaka bawaan yang berguna untuk menyimpan rutinitas yang sering digunakan. Pustaka Dart terdiri dari sekumpulan kelas, konstanta, fungsi, typedef, properti, dan pengecualian.
Mengimpor perpustakaan
Mengimpor membuat komponen di pustaka tersedia untuk kode pemanggil. Kata kunci impor digunakan untuk mencapai hal yang sama. File dart dapat memiliki beberapa pernyataan impor.
URI library Dart bawaan menggunakan skema dart: untuk merujuk ke library. Pustaka lain bisa menggunakan jalur sistem file atau skema paket: untuk menentukan URI-nya. Library yang disediakan oleh manajer paket seperti alat pub menggunakan package: scheme .
Sintaks untuk mengimpor perpustakaan di Dart diberikan di bawah ini -
import 'URI'
Pertimbangkan cuplikan kode berikut -
import 'dart:io'
import 'package:lib1/libfile.dart'
Jika Anda ingin menggunakan hanya sebagian dari pustaka, Anda bisa mengimpor pustaka secara selektif. Sintaks yang sama diberikan di bawah ini -
import 'package: lib1/lib1.dart' show foo, bar;
// Import only foo and bar.
import 'package: mylib/mylib.dart' hide foo;
// Import all names except foo
Beberapa perpustakaan yang umum digunakan diberikan di bawah ini -
Sr Tidak | Perpustakaan & Deskripsi |
---|---|
1 | dart:io File, soket, HTTP, dan dukungan I / O lainnya untuk aplikasi server. Pustaka ini tidak berfungsi dalam aplikasi berbasis browser. Perpustakaan ini diimpor secara default. |
2 | dart:core Jenis bawaan, koleksi, dan fungsionalitas inti lainnya untuk setiap program Dart. Perpustakaan ini diimpor secara otomatis. |
3 | dart: math Konstanta dan fungsi matematika, ditambah generator bilangan acak. |
4 | dart: convert Encoder dan decoder untuk mengonversi antara representasi data yang berbeda, termasuk JSON dan UTF-8. |
5 | dart: typed_data Daftar yang secara efisien menangani data berukuran tetap (misalnya, unsigned 8 byte integer). |
Contoh: Mengimpor dan menggunakan Perpustakaan
Contoh berikut mengimpor pustaka bawaan dart: math. Cuplikan tersebut memanggilsqrt() fungsi dari mathPerpustakaan. Fungsi ini mengembalikan akar kuadrat dari angka yang diteruskan padanya.
import 'dart:math';
void main() {
print("Square root of 36 is: ${sqrt(36)}");
}
Output
Square root of 36 is: 6.0
Enkapsulasi di Perpustakaan
Skrip Dart dapat mengawali pengenal dengan garis bawah (_) untuk menandai komponennya sebagai pribadi. Sederhananya, perpustakaan Dart dapat membatasi akses ke kontennya dengan skrip eksternal. Ini disebut sebagaiencapsulation. Sintaks yang sama diberikan di bawah ini -
Sintaksis
_identifier
Contoh
Pertama-tama, tentukan perpustakaan dengan fungsi privat.
library loggerlib;
void _log(msg) {
print("Log method called in loggerlib msg:$msg");
}
Selanjutnya, impor perpustakaan
import 'test.dart' as web;
void main() {
web._log("hello from webloggerlib");
}
Kode di atas akan menghasilkan error.
Unhandled exception:
No top-level method 'web._log' declared.
NoSuchMethodError: method not found: 'web._log'
Receiver: top-level
Arguments: [...]
#0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:184)
#1 main (file:///C:/Users/Administrator/WebstormProjects/untitled/Assertion.dart:6:3)
#2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
Membuat Perpustakaan Kustom
Dart juga memungkinkan Anda menggunakan kode Anda sendiri sebagai perpustakaan. Membuat pustaka kustom melibatkan langkah-langkah berikut -
Step 1: Declaring a Library
Untuk mendeklarasikan perpustakaan secara eksplisit, gunakan library statement. Sintaks untuk mendeklarasikan perpustakaan seperti yang diberikan di bawah ini -
library library_name
// library contents go here
Step 2: Associating a Library
Anda dapat mengaitkan perpustakaan dengan dua cara -
- Di dalam direktori yang sama
import 'library_name'
- Dari direktori yang berbeda
import 'dir/library_name'
Contoh: Perpustakaan Kustom
Pertama, mari kita tentukan perpustakaan khusus, calculator.dart.
library calculator_lib;
import 'dart:math';
//import statement after the libaray statement
int add(int firstNumber,int secondNumber){
print("inside add method of Calculator Library ") ;
return firstNumber+secondNumber;
}
int modulus(int firstNumber,int secondNumber){
print("inside modulus method of Calculator Library ") ;
return firstNumber%secondNumber;
}
int random(int no){
return new Random().nextInt(no);
}
Selanjutnya, kami akan mengimpor perpustakaan -
import 'calculator.dart';
void main() {
var num1 = 10;
var num2 = 20;
var sum = add(num1,num2);
var mod = modulus(num1,num2);
var r = random(10);
print("$num1 + $num2 = $sum");
print("$num1 % $num2= $mod");
print("random no $r");
}
Program tersebut harus menghasilkan yang berikut ini output -
inside add method of Calculator Library
inside modulus method of Calculator Library
10 + 20 = 30
10 % 20= 10
random no 0
Awalan Perpustakaan
Jika Anda mengimpor dua pustaka dengan pengenal yang bentrok, Anda bisa menentukan awalan untuk satu atau kedua pustaka. Menggunakan'as'kata kunci untuk menentukan awalan. Sintaks yang sama diberikan di bawah ini -
Sintaksis
import 'library_uri' as prefix
Contoh
Pertama, mari kita tentukan perpustakaan: loggerlib.dart.
library loggerlib;
void log(msg){
print("Log method called in loggerlib msg:$msg");
}
Selanjutnya, kami akan menentukan perpustakaan lain: webloggerlib.dart.
library webloggerlib;
void log(msg){
print("Log method called in webloggerlib msg:$msg");
}
Terakhir, kami akan mengimpor pustaka dengan awalan.
import 'loggerlib.dart';
import 'webloggerlib.dart' as web;
// prefix avoids function name clashes
void main(){
log("hello from loggerlib");
web.log("hello from webloggerlib");
}
Ini akan menghasilkan yang berikut ini output -
Log method called in loggerlib msg:hello from loggerlib
Log method called in webloggerlib msg:hello from webloggerlib