🔹 import في Dart 🚀
في Dart، يتم استخدام الكلمة المفتاحية import لاستيراد المكتبات (Libraries) والملفات الخارجية في البرنامج.
يساعد import في إعادة استخدام الكود وتنظيمه عن طريق استيراد الوظائف (Functions)، الكلاسات (Classes)، والمتغيرات (Variables) من ملفات أو حزم أخرى.
🔹 أنواع import في Dart
✅ 1. استيراد مكتبات Dart الأساسية
يمكنك استيراد المكتبات المدمجة في Dart مثل:
dart:core(مضمن تلقائيًا) 🟢dart:math(للعمليات الرياضية) ➕dart:io(للتعامل مع الملفات و I/O) 📂dart:convert(لتحويل البيانات) 🔄
📌 مثال: استيراد مكتبة dart:math
dartنسختحرير<code>import 'dart:math';
void main() {
print(sqrt(25)); // ✅ Output: 5.0
}
</code>Dart🔹 التفسير: dart:math تحتوي على دوال رياضية مثل sqrt() لحساب الجذر التربيعي.
✅ 2. استيراد ملفات محلية (import 'file.dart')
يمكنك استيراد ملفات Dart أخرى داخل نفس المشروع.
📌 مثال: استيراد ملف محلي (utils.dart)
📂 ملف utils.dart
dartنسختحرير<code>String greet(String name) {
return "مرحبًا $name!";
}
</code>Dart📂 ملف main.dart
dartنسختحرير<code>import 'utils.dart';
void main() {
print(greet("Ali")); // ✅ Output: مرحبًا Ali!
}
</code>Dart🔹 التفسير:
- استوردنا
utils.dartواستخدمنا الدالةgreet()من الملف الآخر.
✅ 3. استيراد الحزم (import 'package:...')
🔹 يستخدم لاستيراد المكتبات الخارجية من pub.dev أو مكتبات المشروع.
📌 مثال: استيراد http لإجراء طلبات HTTP 1️⃣ أضف المكتبة إلى pubspec.yaml:
yamlنسختحريرdependencies:
http: ^0.13.0
2️⃣ استخدمها في main.dart:
dartنسختحرير<code>import 'package:http/http.dart' as http;
void main() async {
var response = await http.get(Uri.parse("https://jsonplaceholder.typicode.com/posts/1"));
print(response.body);
}
</code>Dart🔹 التفسير:
import 'package:http/http.dart' as http;يستورد مكتبةhttpلإجراء طلبات الشبكة.- استخدمنا
http.get()لجلب بيانات من API.
✅ 4. استيراد جزئي (show و hide)
show: لاستيراد عناصر محددة فقط من المكتبة.hide: لاستبعاد عناصر معينة من المكتبة.
📌 مثال: show لاستيراد دالة معينة
dartنسختحرير<code>import 'dart:math' show pi, sqrt;
void main() {
print(pi); // ✅ يعمل
print(sqrt(16)); // ✅ يعمل
// print(Random()); // ❌ خطأ لأننا لم نستورد `Random`
}
</code>Dart📌 مثال: hide لاستبعاد عنصر معين
dartنسختحرير<code>import 'dart:math' hide pi;
void main() {
print(Random().nextInt(100)); // ✅ يعمل
// print(pi); // ❌ خطأ لأن `pi` مستبعدة
}
</code>Dart✅ 5. استيراد باستخدام deferred (تحميل Lazy)
🔹 يسمح بتحميل المكتبة فقط عند الحاجة لتحسين أداء التطبيق.
📌 مثال: deferred as لتحميل مكتبة عند الحاجة
dartنسختحرير<code>import 'utils.dart' deferred as utils;
void main() async {
await utils.loadLibrary(); // 🔄 تحميل المكتبة
print(utils.greet("Dart")); // ✅ Output: مرحبًا Dart!
}
</code>Dart🔹 التفسير:
deferred as utils;يعني أنutils.dartلن يتم تحميله إلا عند استدعاءloadLibrary().
🎯 خلاصة import في Dart
✅ import 'dart:math'; → استيراد مكتبات Dart.
✅ import 'utils.dart'; → استيراد ملف محلي.
✅ import 'package:http/http.dart' as http; → استيراد مكتبة خارجية.
✅ import 'dart:math' show pi; → استيراد عناصر محددة.
✅ import 'dart:math' hide pi; → استبعاد عناصر معينة.
✅ import 'utils.dart' deferred as utils; → تحميل Lazy عند الحاجة.