العوامل المقارنة في Dart تُستخدم للمقارنة بين قيمتين وإرجاع قيمة منطقية (true أو false).
هذه العوامل أساسية في اتخاذ القرارات البرمجية مثل الشروط (if، while، وغيرها).1. جدول العوامل العلاقية في Dart
1. جدول العوامل العلاقية في Dart
| العامل | الوصف | مثال | الناتج |
|---|---|---|---|
== | يساوي | 5 == 5 | true |
!= | لا يساوي | 5 != 3 | true |
> | أكبر من | 10 > 5 | true |
< | أصغر من | 10 < 5 | false |
>= | أكبر من أو يساوي | 10 >= 10 | true |
<= | أصغر من أو يساوي | 5 <= 3 | false |
2. شرح كل عامل مع أمثلة عملية
1. العامل == (يساوي)
يُستخدم لمقارنة إذا ما كان الطرفان متساويين في القيمة.
void main() {
int a = 10;
int b = 10;
int c = 20;
print(a == b); // true (لأن 10 تساوي 10)
print(a == c); // false (لأن 10 لا تساوي 20)
}Dart2. العامل != (لا يساوي)
يُستخدم لمقارنة إذا ما كان الطرفان غير متساويين.
void main() {
String name1 = "Ahmed";
String name2 = "Ali";
print(name1 != name2); // true (لأن "Ahmed" لا يساوي "Ali")
print(5 != 5); // false (لأن 5 تساوي 5)
}Dart3. العامل > (أكبر من)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أكبر من الطرف الأيمن.
void main() {
double x = 15.5;
double y = 10.3;
print(x > y); // true (لأن 15.5 أكبر من 10.3)
print(3 > 5); // false (لأن 3 ليست أكبر من 5)
}Dart4. العامل < (أصغر من)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أصغر من الطرف الأيمن.
void main() {
int age1 = 25;
int age2 = 30;
print(age1 < age2); // true (لأن 25 أصغر من 30)
print(10 < 5); // false (لأن 10 ليست أصغر من 5)
}Dart5. العامل >= (أكبر من أو يساوي)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أكبر أو يساوي الطرف الأيمن.
void main() {
int num1 = 10;
int num2 = 10;
int num3 = 5;
print(num1 >= num2); // true (لأن 10 تساوي 10)
print(num1 >= num3); // true (لأن 10 أكبر من 5)
print(3 >= 7); // false (لأن 3 ليست أكبر أو تساوي 7)
}Dart6. العامل <= (أصغر من أو يساوي)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أصغر أو يساوي الطرف الأيمن.
void main() {
double price1 = 99.99;
double price2 = 100.0;
double price3 = 99.99;
print(price1 <= price2); // true (لأن 99.99 أصغر من 100.0)
print(price1 <= price3); // true (لأن 99.99 تساوي 99.99)
print(150 <= 100); // false (لأن 150 ليست أصغر أو تساوي 100)
}Dart3. استخدام العوامل العلاقية مع الشروط (if, else)
تُستخدم هذه العوامل بكثرة مع هياكل التحكم مثل if و else.
مثال 1: التحقق من العمر
void main() {
int age = 18;
if (age >= 18) {
print("أنت بالغ"); // سيتم طباعته لأن 18 >= 18
} else {
print("أنت قاصر");
}
}Dartمثال 2: مقارنة كلمتي المرور
void main() {
String savedPassword = "123456";
String enteredPassword = "123456";
if (enteredPassword == savedPassword) {
print("كلمة المرور صحيحة"); // سيتم طباعته
} else {
print("كلمة المرور خاطئة");
}
}Dartمثال 3: التحقق من نطاق رقم (Range Check)
void main() {
int number = 25;
if (number >= 1 && number <= 100) {
print("الرقم بين 1 و 100"); // سيتم طباعته
} else {
print("الرقم خارج النطاق");
}
}Dart4. أمثلة متقدمة
مثال 1: مقارنة القوائم (Lists)
void main() {
List<int> list1 = [1, 2, 3];
List<int> list2 = [1, 2, 3];
List<int> list3 = [4, 5, 6];
print(list1 == list2); // false (لأنها كائنات مختلفة في الذاكرة)
print(list1[0] == list2[0]); // true (لأن القيم متساوية)
}Dartملاحظة: في Dart، مقارنة القوائم باستخدام
==تُقارن المراجع (references) وليس المحتوى.
لمقارنة المحتوى، يمكن استخدامlist1.equals(list2)من حزمةcollection.
مثال 2: مقارنة الكائنات (Objects)
class Person {
String name;
int age;
Person(this.name, this.age);
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is Person &&
other.name == name &&
other.age == age;
}
}
void main() {
Person p1 = Person("Ahmed", 25);
Person p2 = Person("Ahmed", 25);
Person p3 = Person("Ali", 30);
print(p1 == p2); // true (لأن البيانات متطابقة)
print(p1 == p3); // false
}Dart5. الخلاصة
| العامل | الوصف | مثال | الناتج |
|---|---|---|---|
== | يساوي | "Dart" == "dart" | false |
!= | لا يساوي | 10 != 5 | true |
> | أكبر من | 7 > 3 | true |
< | أصغر من | 7 < 3 | false |
>= | أكبر من أو يساوي | 5 >= 5 | true |
<= | أصغر من أو يساوي | 4 <= 3 | false |
تُستخدم هذه العوامل في:
- الشروط (
if,else,switch) - الحلقات (
while,for) - المقارنات بين المتغيرات والكائنات
نصيحة: عند مقارنة الكائنات المخصصة (Custom Objects)، يجب تجاوز دالة
==للحصول على نتائج صحيحة.