"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو الغرض من عامل الأنابيب المتساوي (=) في البرمجة؟

ما هو الغرض من عامل الأنابيب المتساوي (=) في البرمجة؟

تم النشر بتاريخ 2024-11-07
تصفح:239

What is the Purpose of the Pipe Equal (=) Operator in Programming?

ما هو عامل تشغيل الأنابيب المتساوي (=)؟

المطورين الذين واجهوا عامل تشغيل الأنابيب المتساوي (|=) في المصادر المفتوحة قد يتساءل رمز المكتبة عن معناه. هذا العامل، الذي غالبًا ما يتم الخلط بينه وبين تعيين منطقي، يحمل عملية OR ذات اتجاه بت كبير.

فهم Bitwise OR

يعمل عامل تشغيل الأنابيب المتساوي |= بشكل مماثل لـ =. في الكود أدناه، يجمع عامل التشغيل |= القيمة الأصلية للإعدادات الافتراضية مع الثابت DEFAULT_SOUND:

notification.defaults |= Notification.DEFAULT_SOUND;

هذه العملية تعادل:

notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;

حيث | يشير إلى عامل التشغيل bitwise OR.

Bitwise OR في الأقنعة الثابتة

في المثال المقدم، الثوابت DEFAULT_SOUND وDEFAULT_VIBRATE وDEFAULT_LIGHTS هي قوى للعدد اثنين:

DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1 DEFAULT_SOUND = 1 DEFAULT_VIBRATE = 2 (1 يسمح هذا باستخدام البت OR لإضافة أو إزالة العلامات. على سبيل المثال:

int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE؛ // 001 | 010 = 011
DEFAULT_SOUND = 1
DEFAULT_VIBRATE = 2 (1 إضافة علامة أخرى:

myFlags |= DEFAULT_LIGHTS;
DEFAULT_SOUND = 1
DEFAULT_VIBRATE = 2 (1 يؤدي ببساطة إلى إلحاق علامة جديدة.

اختبار وجود العلم

يختبر عامل التشغيل AND (&) وجود العلامة:

boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;
DEFAULT_SOUND = 1
DEFAULT_VIBRATE = 2 (1 إذا كانت النتيجة هي غير الصفر، يتم تعيين العلم.

بيان الافراج يتم استنساخ هذه المقالة في: 1729671437 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3