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

أولويات عناصر Swift واتحادها

在本文中,您将了解用于计算带有运算符和操作数的表达式的规则。

Swift运算符优先级

运算符优先级是用于计算给定数学表达式的规则集合。当在单个表达式中使用多个运算符时,每个部分按照称为运算符优先级的特定顺序进行计算。某些运算符具有比其他运算符更高的优先级,这会影响表达式的计算方式。

运算符优先级表

下表列出了Swift中الوظيفة的优先级。它在表格中显示的越高,其优先级越高。

Swift标准库优先级组(从高到低)
مجموعة العملمثال
位改变优先级>> &<< &>> >>
مستوى الأولوية للضرب&* % & * /
مستوى الأولوية للجمع| &+ &- + –  ^
تكوين النطاق..< …
مستوى الأولوية للتحويل النوعيis as
مستوى الأولوية للجمع الكوني??
مستوى الأولوية للمقارنة!= > < >= <= === ==
مستوى الأولوية للتحديد المنطقي&&
مستوى الأولوية لتحليل المنطق||
أولويات افتراضية~>
أولويات الترميز الثلاثي?:
أولويات الدوال السريعة( )
أولويات الأوامر|= %= /= &<<= &>>= &= *= >>= <<= ^= += -=

مثال 1: مستوى الأولوية للوظائف في Swift

let x = 4 + 5 * 5
print(x)

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

29

في المثال السابق، إذا تم قراءة التعبير من اليسار إلى اليمين، قد تتوقع أن تكون النتيجة 45. ولكن يتمتع عمود الضرب الأولوية أعلى من عمود الجمع، لذا يتم حساب التعبير 4 + 5 * 5 كـ 4 + (5 * 5). لذا، يتم طباعة (x) على الشاشة 29.

تنفيذ الخطوات
الخطوات
الوظيفةالتعبيرمن القيمة التي يعودها التعبير
1*5 * 525
2+4 + 2529
3=print(x)29

مثال 2: مستوى الأولوية للوظائف في Swift مع عمود التحويل المعقد

var y = 15
y += 10 - 2 * 3
print(y)

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

19

في المثال السابق، يتم تعيين التعبير var y = 15 لـ 15.

في التعبير التالي y + = 10-2 * 3، يتمتع عمود الضرب الأولوية أعلى من عمود الحساب المركب (+ =).

لذلك، يتم حساب التعبير y + = 10-2 * 3 كـ y = y + (10-(2 * 3)).

تنفيذ الخطوات
الخطواتالوظيفةالتعبيرالقيمة التي يعودها التعبير
1=var y = 1515
2*2 * 36
3--10-64
4+ =15 + 419

تحديد العمل في Swift

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

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

جدول تحديد العمل

الجدول التالي يوضح تحديد العمل والاولوية للوظائف في Swift.

التحديد القياسي لSwift (من أعلى إلى أسفل المستوى الأولوية)
مجموعة العملمثالالتحديد
مستوى الأولوية للتحويل بالحركة>>&<<&>> >>لا
مستوى الأولوية للضرب&*%&* /الجمع اليساري
مستوى الأولوية للجمع| &+&-+-^الجمع اليساري

مستوى الأولوية لتكوين النطاق

.. <...لا
مستوى الأولوية للتحويل النوعيis a
لا
مستوى الأولوية للجمع الكوني??الاتحاد الأيمن
مستوى الأولوية للمقارنة!=> <> = <= === ==لا

مستوى الأولوية للوصل المنطقي

&&الجمع اليساري
مستوى الأولوية لتحليل المنطق||الجمع اليساري
أولويات افتراضية~>لا
أولويات الترميز الثلاثي؟:الاتحاد الأيمن
أولويات الدوال السريعة()الاتحاد الأيمن
أولويات الأوامر| =%= / =&<< =&>> =&= * = >> = << = ^ =الاتحاد الأيمن

مثال 3: أولويات واتحاد عناصر Swift

let x = 40 / 2 * 10
print(x)

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

200

في البرنامج المذكور أعلاه، يتم حساب التعبير من اليسار إلى اليمين، لأن العناصر ينتمون إلى مجموعة الحساب ضرب، ولديهم الاتحاد الأيسر. لذلك، سيتم تنفيذ عملية التقسيم قبل الحساب، والنتيجة هي 200. ماذا إذا كنت ترغب في تنفيذ الحساب الضربي أولاً؟ تحتاج إلى وضع تعبير 2 * 10 داخل الأقواس الكبيرة، مثلما هو موضح أدناه:

let x = 40 / (2 * 10)
print(x)

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

2

لا تحتاج إلى تذكر جدول الأولويات والاتحاد. في معظم الحالات، الأولويات والاتحاد نفسهما مهمان جدًا. إذا كان لديك أي استفسار، يمكنك دائمًا استخدام هذا الجدول كمرجع. بالإضافة إلى ذلك، من الأفضل استخدام الأقواس لتسهيل فهم الكود.