احسب قيمة التعبير التالي:
[''] == خطأ
أولاً ، المعاملتان هما نوع الكائن ونوع منطقي. وفقًا للشكل 1 ، من الضروري تحويل نوع Boolean إلى نوع رقمي ، ونتيجة تحويل False إلى Numeric هي 0 ، لذلك يصبح التعبير:
[''] == 0
تصبح المعاملين نوع الكائن ونوع الرقم. وفقًا للشكل 1 ، يجب تحويل نوع الكائن إلى النوع الأصلي:
أولا ، اتصل [] .valueof (). نظرًا لأن طريقة ValueOF () من الصفيف تُرجع نفسها ، فإن النتيجة ليست هي النوع الأصلي. استمر في الاتصال [] .ToString ().
بالنسبة للصفائف ، تتمثل الخوارزمية لطريقة ToString () في تحويل كل عنصر إلى نوع سلسلة ، ثم تسلسلها بالتسلسل مع الفواصل "، وبالتالي فإن النتيجة النهائية هي سلسلة فارغة" ، وهي قيمة للنوع الأصلي.
في هذه المرحلة ، يصبح التعبير:
'' == 0
تصبح المعاملتان أنواعًا من السلسلة وأنواع الرقمية. وفقًا للشكل 1 ، من الضروري تحويل نوع السلسلة إلى نوع الأرقام. كما ذكرنا سابقًا ، تصبح السلسلة الفارغة عددًا من 0. لذلك يصبح التعبير:
0 == 0
حتى الآن ، تكون أنواع المعاملتين متماثلة في النهاية ، والنتيجة صحيحة بشكل واضح.