English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

عمودية الحالة في Swift

في هذا المقال، ستعلم كيفية استخدام عمودية الحالة أو العمودية الحالة لتغيير تدفق البرنامج.

عمودية الحالة "? :" هيجملة if-elseالتنسيق القصير.

نص عمودية الحالة هو:

condition ? value1 : value2

كيف تعمل عمودية الحالة؟

وهذا ما يعنيه

  • إذا كانت condition صحيحة، فإنها تعيد value1.

  • إذا كانت condition خطأ، فإنها تعيد value2.

النص المماثل باستخدام if-else هو:

if condition {
	value1
}
	value2
}

لماذا نستخدم عمودية الحالة؟

قد تتساءل لماذا نستخدم عمودية الحالة إذا كانت تقوم بمثل عمل جملة if-else. الغرض الرئيسي منها هو جعل الكود أقصر وأكثر وضوحًا.

في الحالات البسيطة، يمكنك حسابها في سطر واحد باستخدام أقل كود من if-else.

مثال 1: استخدام عمودية الحالة بسيطة

print(true && false ? "الحالة صحيحة" : "الحالة خطأ")

النص المماثل باستخدام if-else هو:

if true && false {
	print(الحالة صحيحة)
}
	print(الحالة خطأ)
}

عند تشغيل البرنامج أعلاه، الناتج سيكون:

الحالة خطأ

في البرنامج أعلاه، نتائج التعبير true && false هو خطأ، لذا يعيد الجملة. الحالة خطأ ويُطبع جملة print في الشاشة.

إذا تم تغيير العبارة إلى true || false، فإن الجملة تُحسب كصحيحة وتُعيد العبارة.الحالة صحيحة،يُطبع جملة print في الشاشة.

ملاحظات

يمكن استخدام عمودية الحالة أيضًا كبدل لجملة if-else-if.

من خلال استخدام عمودية الحالة، يمكنك استبدال سطرين أو أكثر من if-else-if بسطر واحد.

لكن في بعض الأحيان، قد لا يكون هذا هو الحل الأفضل.

مثال 2: استخدام عمودية الحالة داخل if-else

if true && false {
	print(النتيجة هي (true && false))
} else if true || false {
	print(النتيجة هي (true || false))
} else if false || false {
	print(النتيجة هي (false || false))
}
	print("بند else الافتراضي")
}

النص المماثل لبند عمودية الثلاثية المذكور أعلاه هو:

print(true && false ? "Result is \(true && false)" : true || false ? "Result is \(true || false)" : false || false ? "Result is \(false || false)" : "The condition is unknown")

عند تشغيل البرنامج المذكور أعلاه، ستكون هناك اثنتان من الخروج هي:

النتيجة هي الحقيقة

في البرنامج المذكور أعلاه، على الرغم من أننا نستخدم عمودية الثلاثية لتعويض بند if-else-if ببند واحد. ولكن تعبيرات عمودية الثلاثية صعبة الفهم.

لذلك، يجب استخدام عمودية الثلاثية حسب الحالة الفعلية.