Latest web development tutorials

سكالا مجموعة

ويستخدم مجموعة لغة سكالا المقدمة للتخزين عناصر حجم ثابت من نفس النوع، واحد لكل بوابة اللغة المحررين مجموعة، هي هياكل البيانات الهامة.

لم يتم التصريح إعلان متغير صفيف number0، number1، و ...، number99 متغير مستقل، ولكن إعلان مثل هذه الأرقام متغيرة، ثم استخدام أرقام [0]، أرقام [1]، ...، أرقام [ 99] لتمثيل متغير مستقل. يتم الوصول إلى عنصر صفيف التي يحددها المؤشر.

العنصر الأول من مؤشر مجموعة 0، مؤشر العنصر الأخير هو عدد العناصر ناقص واحد.


تعلن مجموعة

ما يلي هو بناء الجملة سكالا إعلان مجموعة:

var z:Array[String] = new Array[String](3)

或

var z = new Array[String](3)

بناء الجملة أعلاه، ض تعلن نوع سلسلة من مجموعة، وطول مجموعة هو 3، ويمكن تخزين ثلاثة عناصر. فإننا يمكن أن يحدد قيمة لكل عنصر، والحصول على كل عنصر من مؤشر، على النحو التالي:

z(0) = "w3big"; z(1) = "Baidu"; z(4/2) = "Google"

فهرس العنصر الأخير في التعبير عن الرأي4/2 وذلك في مؤشر مماثل إلى الياء (2) = "جوجل".

يمكننا أيضا تحديد مجموعة باستخدام الطرق التالية:

var z = Array("w3big", "Baidu", "Google")

ويوضح الشكل التالي مجموعة من طول قائمتي 10، قيمة المؤشر من 0-9:


العمل مع صفائف

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

يوضح المثال التالي إنشاء مجموعة، عملية التهيئة:

object Test {
   def main(args: Array[String]) {
      var myList = Array(1.9, 2.9, 3.4, 3.5)
      
      // 输出所有数组元素
      for ( x <- myList ) {
         println( x )
      }

      // 计算数组所有元素的总会
      var total = 0.0;
      for ( i <- 0 to (myList.length - 1)) {
         total += myList(i);
      }
      println("总和为 " + total);

      // 查找数组中的最大元素
      var max = myList(0);
      for ( i <- 1 to (myList.length - 1) ) {
         if (myList(i) > max) max = myList(i);
      }
      println("最大值为 " + max);
    
   }
}

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

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
总和为 11.7
最大值为 3.5

المصفوفات متعددة الأبعاد

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

ما سبق هو مثال على صفيف ثنائي الأبعاد المحددة:

var myMatrix = ofDim[Int](3,3)

أمثلة على مجموعة تحتوي على ثلاثة عناصر المصفوفة، كل عنصر من عناصر مجموعة بدوره يحتوي على ثلاث قيم.

المقبل، ونحن ننظر إلى المثال الكامل للصفيف ثنائي الأبعاد من المعالجة:

import Array._

object Test {
   def main(args: Array[String]) {
      var myMatrix = ofDim[Int](3,3)
      
      // 创建矩阵
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            myMatrix(i)(j) = j;
         }
      }
      
      // 打印二维阵列
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            print(" " + myMatrix(i)(j));
         }
         println();
      }
    
   }
}

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

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

$ scalac Test.scala
$ scala Test
0 1 2
0 1 2
0 1 2

دمج مجموعة

الأمثلة التالية، ونحن نستخدم CONCAT () طريقة لدمج اثنين من صفائف، CONCAT () طريقة يقبل المعلمات مجموعة متعددة:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = Array(1.9, 2.9, 3.4, 3.5)
      var myList2 = Array(8.9, 7.9, 0.4, 1.5)

      var myList3 =  concat( myList1, myList2)
      
      // 输出所有数组元素
      for ( x <- myList3 ) {
         println( x )
      }
   }
}

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

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
8.9
7.9
0.4
1.5

إنشاء فاصل مجموعة

الأمثلة التالية، ونحن نستخدم طريقة النطاق () لإنتاج مجموعة ضمن نطاق واسع. مجموعة () طريقة المعلمة الأخيرة في الخطوات من 1 افتراضيا:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = range(10, 20, 2)
      var myList2 = range(10,20)

      // 输出所有数组元素
      for ( x <- myList1 ) {
         print( " " + x )
      }
      println()
      for ( x <- myList2 ) {
         print( " " + x )
      }
   }
}

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

$ scalac Test.scala
$ scala Test
10 12 14 16 18
10 11 12 13 14 15 16 17 18 19

سكالا طريقة مجموعة

الجدول التالي هو وسيلة هامة لمعالجة اللغة سكالا مجموعة، قبل استخدامه نحن بحاجة إلى استخدامArray._ استيراد حزمة عرضه.

لا. طريقة والوصف
1

تطبيق صفر (س: T، XS : T *): صفيف [T]

إنشاء مجموعة من وجوه تي محددة، قد تكون قيمة T وحدة، مزدوجة، تعويم، طويل، كثافة العمليات، شار، قصيرة، بايت، منطقية.

2

CONCAT مواطنه [T] (XSS: صفيف [T] *): صفيف [T]

دمج مجموعة

3

مواطنه نسخ (SRC: AnyRef، srcPos : كثافة العمليات، دست: AnyRef، destPos: كثافة العمليات، الطول: كثافة العمليات): وحدة

نسخ مجموعة إلى مجموعة أخرى. أي ما يعادل System.arraycopy جاوة (SRC، srcPos، دست، destPos، طول).

4

مواطنه فارغة [T]: صفيف [ T]

بإرجاع مجموعة من طول 0 هي

5

أعاد مواطنه [T] (بدء: T، ليون: كثافة العمليات) (و (T) => T): صفيف [T]

إرجاع طول المصفوفة، كل عنصر من عناصر مجموعة هو القيمة المرجعة للدالة المحدد.

أمثلة على مجموعة القيمة الأولية المذكورة أعلاه 0 ويبلغ طوله 3 لحسابدالة => أ + 1:

scala> Array.iterate(0,3)(a=>a+1)
res1: Array[Int] = Array(0, 1, 2)
6

ملء مواطنه [T] (ن: كثافة العمليات) (إيليم: => T): صفيف [T]

بإرجاع صفيف، يتم تحديد المعلمة الأولى، ولكل عنصر من عناصر الحجة الثانية لملء طول.

7

ملء مواطنه [T] (N1: كثافة العمليات، N2: كثافة العمليات) (إيليم: => T): صفيف [صفيف [T]]

يعود اثنين من صفائف، يتم تحديد المعلمة الأولى، ولكل عنصر من عناصر الحجة الثانية لملء طول.

8

مواطنه ofDim [T] (N1: كثافة العمليات): صفيف [T]

إنشاء مجموعة من طول المحدد

9

مواطنه ofDim [T] (N1: كثافة العمليات، N2: كثافة العمليات): صفيف [صفيف [T]]

إنشاء صفيف ثنائي الأبعاد

10

مواطنه ofDim [T] (N1: كثافة العمليات، N2: كثافة العمليات، N3: كثافة العمليات): صفيف [صفيف [صفيف [T]]]

إنشاء مجموعة ثلاثية الأبعاد

11

مجموعة مواطنه (البدء: كثافة العمليات، نهاية : كثافة العمليات، خطوة: كثافة العمليات): صفيف [الباحث]

إنشاء مجموعة ضمن نطاق محدد، العلاوات الدورية بين كل عنصر

12

مجموعة مواطنه (البدء: كثافة العمليات، نهاية : كثافة العمليات): صفيف [الباحث]

إنشاء مجموعة ضمن النطاق المحدد

13

جدولة مواطنه [T] (ن: كثافة العمليات) و ((الباحث) => T): صفيف [T]

إرجاع طول المصفوفة، كل عنصر من عناصر مجموعة هي القيمة المرجعة من الدالة محدد، من صفر افتراضيا.

الأمثلة المذكورة أعلاه تعود ثلاثة عناصر:

scala> Array.tabulate(3)(a => a + 5)
res0: Array[Int] = Array(5, 6, 7)
14

مواطنه جدولة [T] (N1: كثافة العمليات، N2: كثافة العمليات) و ((الباحث، الباحث) => T): صفيف [صفيف [T]]

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