Kutubxonalar – bu bizning dastur kodini yozayotgan vaqtimizda bir qancha imkoniyatlar bilan birgalikda doimiy ishlatilovchi ayrim vazifalarni taqdim etuvchi funksiya va qiymatlarni o’zida saqlagan to’plam. Oddiy qilib aytganda, biz kitoblar saqlanuvchi kutubxonani olaylik. Bu joydan o’zimiz uchun kerakli kitobni o’qish, biror ma’lumot izlash yoki boshqa biror zaruriyat bilan olamiz. Hamda o’zimiz uchun keralli ma’lumot olamiz ishimiz, holatimizni osonlashtiruvchi.
Dart dasturlash tili ham kutubxonalarga juda boy hisoblanadi. Ayrimlari bilan tanishib o’tamiz:
- dart:math – matematik funksiyalar bilan ishlash uchun
- dart:io – kiritish-chiqarish oqimi bilan ishlash uchun
- dart:collection – ba’zi ma’lumot tuzilmalari bilan ishlash uchun
- dart:html - brauzer va DOM bilan o'zaro aloqada bo'lishi kerak bo'lgan veb-ilovalar uchun HTML elementlari va boshqa resurslar.
- dart:core - har bir Dart dasturi uchun o'rnatilgan turlar, to'plamlar va boshqa asosiy funksiyalar
va boshqalarni keltirish mumkin.
Dart dasturlash tilining asosiy standart kutubxonalari ro’yxati:
Dart dasturlash tilida kutubxonalar qanday holatda kod fayliga chaqirib olinadi ya’ni ularga qanday murojaat qilinadi kod faylidan turib. Buning uchun ushbu usul yechim bo’ladi:
import 'dart:kutubxona_nomi';
Bu usul aynan murojaat etilgan kutubxonani to’liqligicha kod fayliga ko’chiradi. Albatta bunda bu kutubxonaning barcha imkoniyatlarini to’g’ridan-to’g’ri foydalana olamiz. Ikkinchi usuli esa as (alias) kalit so’zi orqali bu kutubxonaga taxallus berib qo’yishimiz mumkin. Keyin esa shu taxallus orqali uning funksiyalariga murojaat etamiz. Ya’ni shu tarzda beriladi:
import 'dart:kutubxona_nomi' as taxallus;
Endi bular orqali bir misolni ko’rib chiqaylik. Masalan, ikki sondan kattasini topuvchi dastur tuzaylik. Oddiy usulda biz buni if-else instruksiyasi orqali bajaramiz quyidagicha:
void main() {
var birinchi_son = 5, ikkinchi_son = 6;
var kattasi = 0;
if (birinchi_son > ikkinchi_son) {
kattasi = birinchi_son;
} else {
kattasi = ikkinchi_son;
}
print(kattasi);
}
Lekin xuddi shu algoritmni o’zida saqlagan funksiya mavjud va uni biz ishlatish orqali kod uzunligi va nisbatan kodni yozishga sarflaydigan vaqtdan yutamiz, ammo uning qanday ishlashini tushunib ketgan ma’qul doimo. Bunda matematik kutubxonadan max() funksiyasini olib ishlatamiz. Funksiya sintaksisi:
T max<T extends num>(T a, T b)
Bu funksiya 2 ta parametrni qabul qiladi va ular orasidagi eng katta qiymatni topib, natija sifatida qaytaradi.
import 'dart:math';
void main() {
var birinchi_son = 5, ikkinchi_son = 6;
var kattasi = max(birinchi_son, ikkinchi_son);
print(kattasi);
}
Endi shu funksiyani kutubxonaga taxallus berish orqali ishlatganimizda quyidagicha bo’lar edi:
import 'dart:math' as math;
void main() {
var birinchi_son = 5, ikkinchi_son = 6;
var kattasi = math.max(birinchi_son, ikkinchi_son);
print(kattasi);
}
Taxallus berish yana nima uchun kerak? Bu savolga javob biz ishlatayotgan funksiya aynan qaysi kutubxonadan olinganligi aniqroq ko’rsatish uchun.
Aynan hozirda ishlatayotgan kod faylimizga o’zimizning boshqa kod faylimizni qo’shmoqchi bo’lsak, boshqa dasturlash tillarida bo’lgani singari Dart dasturlash tilida ham murojaat etish mumkin. Bu aynan biz katta loyihalar bilan ishlayotgan vaqtda juda kerakli yo’l hisoblanadi.
import 'kod_fayli_nomi';
Shu yo’l orqali ham o’zimizning kod faylimizni kutubxona singari ishlata olamiz.
Dart dasturlash tilida o’zining standart kutubxonalaridan tashqari qo’shimcha paket (package) larni ham o’rnatib ishlatish imkoniyati mavjud va ularga kod faylimizdan turib murojaat etish ozgina boshqacharoq ko’rinishda bo’ladi:
import 'package:paket_nomi';
Qolgan qismi esa umuman farq qilmaydi.