Latest web development tutorials

مشغل سكالا

المشغل هو رمز، وتستخدم لنقول للمترجم لإجراء العمليات الحسابية والمنطقية محددة.

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

  • العوامل الحسابية

  • مشغلي العلائقية

  • مشغلي منطقية

  • أحادي المعامل مشغلي

  • عوامل التعيين

المقبل، وسوف أشرح لك أكثر من تطبيق مختلف المشغلين.


العوامل الحسابية

يسرد الجدول التالي مشغلي دعم الحساب سكالا.

متغير افترض إلى 10، B 20:

مشغلي وصف أمثلة
+ زائد ونتيجة عملية + B 30
- ناقص أ - ب نتيجة العملية -10
* علامة الضرب A * B نتيجة العملية 200
/ إشارة إلى الانقسام B / A نتيجة العملية 2
٪ بقية B٪ ونتيجة الحساب 0

أمثلة

object Test {
   def main(args: Array[String]) {
      var a = 10;
      var b = 20;
      var c = 25;
      var d = 25;
      println("a + b = " + (a + b) );
      println("a - b = " + (a - b) );
      println("a * b = " + (a * b) );
      println("b / a = " + (b / a) );
      println("b % a = " + (b % a) );
      println("c % a = " + (c % a) );
      
   }
}

تشغيل المثال »

تنفيذ التعليمات البرمجية أعلاه، والناتج هو:

$ scalac Test.scala 
$ scala Test
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5

مشغلي العلائقية

يسرد الجدول التالي سكالا دعم العلائقية.

متغير افترض إلى 10، B 20:

مشغلي وصف أمثلة
== مساو (A == B) نتيجة عملية خاطئة
! = لا تساوي (A! = B) نتيجة العملية الحقيقية
> أكبر من (A> B) نتيجة عملية خاطئة
< أقل من (A <B) نتيجة العملية الحقيقية
> = أكبر من أو يساوي (A> = B) نتيجة عملية خاطئة
<= أقل من أو يساوي (A <= B) نتيجة العملية الحقيقية

أمثلة

object Test {
   def main(args: Array[String]) {
      var a = 10;
      var b = 20;
      println("a == b = " + (a == b) );
      println("a != b = " + (a != b) );
      println("a > b = " + (a > b) );
      println("a < b = " + (a < b) );
      println("b >= a = " + (b >= a) );
      println("b <= a = " + (b <= a) );
   }
}

تنفيذ التعليمات البرمجية أعلاه، والناتج هو:

$ scalac Test.scala 
$ scala Test
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

مشغلي منطقية

يسرد الجدول التالي سكالا يدعم العوامل المنطقية.

متغير يفترض ك 1، B هو 0:

مشغلي وصف أمثلة
&& المنطق و (A && B) نتيجة عملية خاطئة
|| منطقي أو (A || B) نتيجة العملية الحقيقية
! منطقيا لا ! (A && B) نتيجة العملية الحقيقية

أمثلة

object Test {
   def main(args: Array[String]) {
      var a = true;
      var b = false;

      println("a && b = " + (a&&b) );

      println("a || b = " + (a||b) );

      println("!(a && b) = " + !(a && b) );
   }
} 

تنفيذ التعليمات البرمجية أعلاه، والناتج هو:

$ scalac Test.scala 
$ scala Test
a && b = false
a || b = true
!(a && b) = true

أحادي المعامل مشغلي

أحادي المعامل مشغلي بت المستخدمة للعمل، ~، &، |، ^ تم انتفى، والشيء، أو فشيئا، وأحادي المعامل عملية XOR مع أمثلة الجدول التالي:

ص ف ص و ف ص | ف ص ^ ف
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

إذا A = 60، و B = 13؛ متغيرين الموافق ثنائي هو:

A = 0011 1100

B = 0000 1101

-------位运算----------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

حكم سكالا المختصة بالبت على النحو التالي:

مشغلي وصف أمثلة
و أحادي المعامل والمشغل (أ و ب) الناتج 12، تفسير ثنائي: 0000 1100
| أحادي المعامل أو المشغل (A | ب) الناتج 61، تفسير ثنائي: 00111101
^ أحادي المعامل OR خاص المشغل (A ^ ب) إخراج 49، تفسير ثنائي: 00110001
~ أحادي المعامل مشغلي (~ A) -61 الإخراج، تفسير ثنائي: 1100 0011 في شكل رمزي تكمل الرقم الثنائي.
<< مشغل للهاتف المحمول اليسار و<< 2 النواتج 240 تفسير ثنائي: 11110000
>> شركات للمحمول الصحيحة و>> 2 إخراج 15، تفسير ثنائي: 0000 1111
>>> تحول الحق غير موقعة و>>> 2 النواتج 15 تفسير ثنائي: 0000 1111

أمثلة

object Test {
   def main(args: Array[String]) {
      var a = 60;           /* 60 = 0011 1100 */  
      var b = 13;           /* 13 = 0000 1101 */
      var c = 0;

      c = a & b;            /* 12 = 0000 1100 */ 
      println("a & b = " + c );

      c = a | b;            /* 61 = 0011 1101 */
      println("a | b = " + c );

      c = a ^ b;            /* 49 = 0011 0001 */
      println("a ^ b = " + c );

      c = ~a;               /* -61 = 1100 0011 */
      println("~a = " + c );

      c = a << 2;           /* 240 = 1111 0000 */
      println("a << 2 = " + c );

      c = a >> 2;           /* 215 = 1111 */
      println("a >> 2  = " + c );

      c = a >>> 2;          /* 215 = 0000 1111 */
      println("a >>> 2 = " + c );
   }
} 

تنفيذ التعليمات البرمجية أعلاه، والناتج هو:

$ scalac Test.scala 
$ scala Test
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

عوامل التعيين

القوائم التالية المشغل سكالا لغة دعم مهمة:

مشغلي وصف أمثلة
= عامل التعيين بسيط، يحدد المعامل الصحيح المسندة إلى المعامل الأيسر. يتم تعيين C نتيجة = A + B A + عملية B إلى C
+ = واضاف بعد الإحالة، الجانبين الأيمن والأيسر من المعامل قبل أن يضيف المخصصة إلى المعامل الأيسر. C + = A يتوافق مع C = C + A
- = بعد احالة الطرح والمعاملات اليسرى واليمنى على جانبي المعامل الأيسر بعد الطرح تعيين ل. ج - = A يتوافق مع C = C - A
* = ثم ضرب المهمة، وتضاعف الجانبين الأيسر والأيمن من المعاملات قبل الاحالة إلى المعامل الأيسر. C * = A يتوافق مع C = C * A
/ = تنقسم بعد الإحالة، الجانبين الأيمن والأيسر من المعامل الفاصل بعد الاحالة إلى المعامل الأيسر. C / = A يعادل C = C / A
٪ = الباقي بعد الاحالة، والجانبين الأيمن والأيسر من المعامل الباقي بعد الاحالة إلى المعامل الأيسر. C = A٪ ما يعادل C = C٪ ل
<< = أحادي المعامل غادر بعد التعيين C << = 2 يتوافق مع C = C << 2
>> = الحق أحادي المعامل بعد الإحالة C >> = 2 ما يعادل C = C >> 2
& = أحادي المعامل والاحالة بعد العملية C & = 2 ما يعادل C = C & 2
^ = أحادي المعامل OR خاص المشغل ثم تعيين C ^ 2 = ما يعادل C = C ^ 2
| = أحادي المعامل أو التنازل بعد C | = 2 يتوافق مع C = C | 2

أمثلة

object Test {
   def main(args: Array[String]) {
      var a = 10;	
      var b = 20;
      var c = 0;

      c = a + b;
      println("c = a + b  = " + c );

      c += a ;
      println("c += a  = " + c );

      c -= a ;
      println("c -= a = " + c );

      c *= a ;
      println("c *= a = " + c );

      a = 10;
      c = 15;
      c /= a ;
      println("c /= a  = " + c );

      a = 10;
      c = 15;
      c %= a ;
      println("c %= a  = " + c );

      c <<= 2 ;
      println("c <<= 2  = " + c );

      c >>= 2 ;
      println("c >>= 2  = " + c );

      c >>= 2 ;
      println("c >>= a  = " + c );

      c &= a ;
      println("c &= 2  = " + c );
     
      c ^= a ;
      println("c ^= a  = " + c );

      c |= a ;
      println("c |= a  = " + c );
   }
} 

تنفيذ التعليمات البرمجية أعلاه، والناتج هو:

$ scalac Test.scala 
$ scala Test
c = a + b  = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a  = 1
c %= a  = 5
c <<= 2  = 20
c >>= 2  = 5
c >>= a  = 1
c &= 2  = 0
c ^= a  = 10
c |= a  = 10

أسبقية المشغل

في تعبير قد تحتوي على عدد وافر من مختلف المشغلين التواصل مع أنواع بيانات مختلفة من الكائنات البيانات؛ لأن عبارة مجموعة متنوعة من العمليات، ترتيب مختلف العمليات قد يكون لها نتائج مختلفة حتى خطأ تشغيل خاطئ، لأنه عندما عندما يكون التعبير التي تحتوي على مجموعة متنوعة من العمليات، وفقا لترتيب معين يجب أن تكون جنبا إلى جنب من أجل ضمان العقلانية وصحة النتائج، تفرد العملية.

الأولوية في ترتيب تنازلي من أعلى إلى أسفل، وأعلى له الأولوية القصوى، المشغل فاصلة لديه أدنى أولوية.

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

تحتاج الأولويات الأساسية لنتذكر:

  • مؤشر الأمثل، أحادي من مشغلي الثنائية. كما توقع.
  • الضرب الأول والانقسام (معامل) بعد الطرح.
  • أول عملية التحول الحسابية بعد الحوسبة قليلا الماضية. يرجى إيلاء اهتمام خاص ل: << 1 2 و 3 + 7 ما يعادل (1 << (3 + 2)) و 7
  • النهائية العملية منطق الحساب
نوع المشغل مشغلي الاتجاه ملزمة
تقييم التعبير () []. EXPR ++ expr-- من اليسار إلى اليمين
تشغيل الأحادية

* & + -! ~ ++ EXPR --expr

* /٪

+ -

>> <<

<> <=> =

==! =

من اليمين إلى اليسار
أحادي المعامل مشغلي

و

^

|

&&

||

من اليسار إلى اليمين
مشغل الثلاثي ؟: من اليمين إلى اليسار
عوامل التعيين = + = - = * = / =٪ = >> = << = & = ^ = | = من اليمين إلى اليسار
فاصلة ، من اليسار إلى اليمين