Type Conversion in Dart

🧠 ما هو التحويل بين الأنواع (Type Conversion)؟

هو عملية تغيير نوع البيانات من نوع إلى نوع آخر، مثل تحويل int إلى String أو double إلى int، وهكذا. في Dart، يوجد نوعان من التحويل:

  1. تحويل ضمني (Implicit Conversion) – يتم تلقائيًا من قبل المترجم (لكن Dart لا تدعمه كثيرًا).
  2. تحويل صريح (Explicit Conversion) – يتم يدويًا باستخدام الدوال أو الطرق المناسبة.

✳️ أمثلة على التحويل الصريح في Dart:

1. تحويل int إلى String

int number = 42;
String text = number.toString();
print(text); // الناتج: "42"
Dart

2. تحويل String إلى int

String text = "123";
int number = int.parse(text);
print(number); // الناتج: 123
Dart

ملاحظة: إذا كانت السلسلة النصية لا تحتوي على رقم صحيح، سيظهر خطأ.

3. تحويل String إلى double

String text = "3.14";
double value = double.parse(text);
print(value); // الناتج: 3.14
Dart

4. تحويل double إلى int

double value = 9.8;
int wholeNumber = value.toInt();
print(wholeNumber); // الناتج: 9
Dart

5. تحويل int إلى double

int x = 10;
double y = x.toDouble();
print(y); // الناتج: 10.0
Dart

🔄 خلاصة التحويلات الشائعة:

التحويلالطريقة المستخدمة
int → String()toString
String → intint.parse() أو int.tryParse()
double → StringtoString()
String → doubledouble.parse() أو double.tryParse()
int → doubletoDouble()
double → inttoInt()

✅ 1. boolString

هذا التحويل سهل ومباشر باستخدام toString():

bool isActive = true;
String result = isActive.toString();
print(result); // "true"
Dart

✅ 2. boolint (يدويًا)

Dart ما تدعم تحويل bool إلى int تلقائيًا، لكن تقدر تسويها يدويًا:

bool flag = true;
int value = flag ? 1 : 0;
print(value); // 1
Dart