✏️ تعديل: Variables
تعديل محتوى الموضوع
→ رجوع للموضوع
عنوان الموضوع
التصنيف
التاقات (مفصولة بفاصلة)
ملاحظة التعديل (اختياري)
المحتوى
`Variables` are named containers to store data. In Dart: ```dart void main() { String name = 'Ali'; int age = 22; double score = 95.5; bool isStudent = true; print(name); // Ali } ``` الاتنين صحيح، لكن الأفضل في Dart هو: ```dart print("My name is $name"); ``` لأنه: - أنظف وأسهل قراءة - الطريقة القياسية في Dart ([[string interpolation]]) والثانية: ```dart print("My name is " + name); ``` تعمل أيضًا، لكنها أقل استخدامًا. Common ways: ```dart var city = 'Cairo'; // type inferred final country = 'Egypt'; // set once const pi = 3.14; // compile-time constant ``` فهمني - `var` = inferred type - `final` = assigned once (runtime) - `const` = compile-time constant وإزاي مش واضع نوع المتغير قبله؟ ممتاز، خليني أبسطها: - `var` = **type inference** يعني Dart تحدد `type` من أول قيمة: ```dart var name = 'Ali'; // String var age = 20; // int ``` بعد كده النوع يثبت، يعني ما ينفعش: ```dart var x = 'Ali'; x = 10; // Error ``` - `final` = **assigned once (runtime)** القيمة تتحدد مرة واحدة فقط وقت التشغيل: ```dart final now = DateTime.now(); // runtime value ``` ينفع بدون كتابة النوع لأن Dart تستنتجه: ```dart final String city = 'Cairo'; // explicit type (optional) final city = 'Cairo'; // inferred type ``` - `const` = **compile-time constant** لازم القيمة تكون معروفة قبل التشغيل: ```dart const pi = 3.14; const appName = 'MyApp'; ``` ده غلط لأن مش compile-time: ```dart const time = DateTime.now(); // Error ``` سؤالك: إزاي بدون type قبله؟ الإجابة: Dart فيها **type inference**، فالـ compiler يعرف النوع من القيمة الأولى تلقائيًا. ولو تحب الوضوح أكثر، اكتب النوع صراحة (`String`, `int`) وهذا صحيح أيضًا. بالضبط، دي أهم فايدة `variables`: **تغيّر من مكان واحد بدل ما تعدّل في كل سطر**. بدل: ```dart print('There once was a man named Ahmed'); print('He was 50 years old'); print('He really liked the name Ahmed'); print('But he did not like being 50'); ``` استخدم: ```dart void main() { String name = 'Ahmed'; int age = 50; print('There once was a man named $name'); print('He was $age years old'); print('He really liked the name $name'); print('But he did not like being $age'); } ``` الآن لو غيّرت: - `name = 'Ali'` - `age = 22` كل الجمل تتحدث تلقائيًا. هذا يخلي الكود **أسرع في التعديل، أقل أخطاء، وأسهل صيانة**. [[String Functions]] [[Numbers Functions]] [[Data Type]] [[property]] [[Sound Null Safety (Dart)]]
👁️ معاينة فورية
💡 كل بلوك قابل للسحب والترتيب. يدعم
Markdown
:
## عنوان
·
**bold**
·
- قائمة
·
```dart code```
·
[[اسم الموضوع]]
💾 حفظ التعديلات