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

عناصر الحساب في Scala

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

Scala تحتوي على مجموعة واسعة من الحروف الحسابية المدمجة، بما في ذلك النوع التالي:

  • الحروف الحسابية

  • الحروف الحسابية

  • عناصر العمليات المنطقية

  • عناصر العمليات المنطقية

  • عمليات الربط

سنقدم لكم تفصيلاً حول تطبيق جميع هذه الحروف الحسابية.

الحروف الحسابية

الجدول أدناه يوضح الحروف الحسابية المدعومة من Scala.

افترض أن المتغير A هو 10،B هو 20:

عناصر الحسابالوصفمثال
+شريط الإضافةA + B الحساب الناتج هو 30
-شريط الحذفA - B الحساب الناتج هو -10
*شريط الضربA * B الحساب الناتج هو 200
/شريط التقسيمB / A الحساب الناتج هو 2
%استخراج الباقيB % A الحساب الناتج هو 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

الحروف الحسابية

الجدول أدناه يوضح الحروف الحسابية المدعومة من Scala.

افترض أن المتغير A هو 10،B هو 20:

عناصر الحسابالوصفمثال
==يساوي(A == B) الحساب الناتج هو false
!=غير متساوي(A != B) الحساب الناتج هو true
>أكبر(A > B) الحساب الناتج هو false
<أقل(A < B) الحساب الناتج هو true
>=أكبر أو يساوي(A >= B) الحساب الناتج هو false
<=أقل أو يساوي(A <= B) الحساب الناتج هو true

مثال على الخط

مثال

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

عناصر العمليات المنطقية

التالي هو قائمة بعناصر العمليات المنطقية المدعومة في Scala.

إفترض أن المتغير A هو 1، B هو 0:

عناصر الحسابالوصفمثال
&&النفي المنطقينتائج العمليات المنطقية (A && B) هي false
||الإشتراك المنطقينتائج العمليات المنطقية (A || B) هي true
!النفي المنطقينتائج العمليات المنطقية !(A && B) هي true

مثال على الخط

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

عناصر العمليات المنطقية

استخدام عناصر العمليات المنطقية للعمل على المواقع الثنائية، ~، &، |، ^ تُعرف بالنفي، الاتصال الحذفي، الاتصال المنطقي، الاتصال المنطقي المتبادل، مثل الأمثلة التالية:

pqp & qp | qp ^ q
00000
01011
11110
10011

إذا تم تحديد A = 60; وب = 13; فإن القيم الثنائية للمتغيرين هي:

A = 0011 1100
B = 0000 1101
------- عمليات الحساب الحذفي ----------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011

قواعد العمليات المنطقية في Scala كالتالي:

عناصر الحسابالوصفمثال
&عمليات الاتصال المنطقي(a & b) نتائج الظهور 12، التفسير الثنائي: 0000 1100
|عمليات الاتصال المنطقي(a | b) نتائج الظهور 61، التفسير الثنائي: 0011 1101
^عمليات الاشتراك المنطقي(a ^ b) نتائج الظهور 49، التفسير الثنائي: 0011 0001
~عمليات النفي المنطقينتيجة خروج (~a) هي -61، التفسير الثنائي: 1100 0011، في شكل إشارة ثنائية للعدد السالب.
<<عمليات التحريك إلى اليسارa << 2 نتيجة الخروج 240، التفسير الثنائي: 1111 0000
>>عمليات التحريك إلى اليمينa >> 2 نتيجة الخروج 15، التفسير الثنائي: 0000 1111
>>>التحويل بدون إشارةA >>>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;           /* 15 = 1111 */
      println("a >> 2  = " + c );
      c = a >>> 2;          /* 15 = 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

عمليات الربط

فيما يلي قائمة بعمليات الربط التي يدعمها لغة Scala:

عناصر الحسابالوصفمثال
=حسابات الربط البسيطة، تحديد القيمة من الجانب الأيمن لربطها بالجانب الأيسر.C = A + B تعيين نتيجة حساب A + B لـ C
+=الجمع ثم الربط، إضافة القيم من الجانبين الأيمن والأيسر ثم ربطها بالعنصر الأيسر.C += A يعادل C = C + A
-=تخصيص بعد عمليات النقاط، سيتم طرح العناصر الموجودين على الجانبين وتخصيصه للعنصر الأيسرC -= A يعادل C = C - A
*=تخصيص بعد عمليات النقاط، سيتم ضرب العناصر الموجودين على الجانبين وتخصيصه للعنصر الأيسرC *= A يعادل C = C * A
/=تخصيص بعد عمليات النقاط، سيتم قسمنا للعناصر الموجودين على الجانبين وتخصيصه للعنصر الأيسرC /= A يعادل C = C / A
%=تخصيص بعد عمليات النقاط، سيتم حساب البقية من كل من العناصر الموجودين على الجانبين وتخصيصه للعنصر الأيسرC %= A يعادل C = C % A
<<=تخصيص بعد عمليات النقاطC <<= 2 يعادل C = C << 2
>>=تخصيص بعد عمليات النقاطC >>= 2 يعادل C = C >> 2
&=تخصيص بعد عمليات النقاطC &= 2 يعادل C = C & 2
^=تخصيص بعد عمليات النقاط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 >>= a ;
      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 = 0
c &= 2 = 0
c ^= a = 10
c |= a = 10

أولوية عناصر الحساب تعتمد على مجموعة العناصر الحسابية التي تنتمي إليها، مما يؤثر على حساب المعادلة.

مثال: x = 7 + 3 * 2; هنا،结果是 x هو 13 وليس 20، لأن الجمع (* ) أعلى من الجمع (+)، لذا يتم حساب 3 * 2 أولاً ثم إضافة 7.

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

فئةعناصر الحسابالتناسق
1() []من اليسار إلى اليمين
2! ~من اليمين إلى اليسار
3* / %من اليسار إلى اليمين
4+ -من اليسار إلى اليمين
5>> >>> <<من اليسار إلى اليمين
6> >= < <=من اليسار إلى اليمين
7== !=من اليسار إلى اليمين
8&من اليسار إلى اليمين
9^من اليسار إلى اليمين
10|من اليسار إلى اليمين
11&&من اليسار إلى اليمين
12||من اليسار إلى اليمين
13= += -= *= /= %= >>= <<= &= ^= |=من اليمين إلى اليسار
14,من اليسار إلى اليمين