Variables
آخر تحديث: منذ 0 ثانية
· 35 مشاهدة
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 typefinal= 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
كل الجمل تتحدث تلقائيًا.
هذا يخلي الكود أسرع في التعديل، أقل أخطاء، وأسهل صيانة.