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

المحولات لScala

جمعيات Scala

Scala Iterator (الم迭代ر) ليس مجموعة، بل هو طريقة لاستخدام المجموعات.

العمليات الأساسية للم迭代ر it هما next و hasNext.

الإتصال it.next() سيقوم بتحويل العنصر التالي للم迭代ر وتحديث حالة الم迭代ر.

الإتصال it.hasNext() للتحقق من وجود عناصر أخرى في المجموعة.

أسهل طريقة لجعل الم迭代ر it يعود بكل العناصر بشكل فردي هي استخدام حلقة while:

object Test {
   def main(args: Array[String]) {
      val it = Iterator("Baidu", "Google", "w3codebox", "Taobao")
      
      while (it.hasNext){
         println(it.next())
      }
   }
}

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

$ scalac Test.scala 
$ scala Test
Baidu
Google
w3codebox
Taobao

البحث عن العناصر الأكبر والأصغر

يمكنك استخدام it.min و it.max طريقة لبحث عن العناصر الأكبر والأصغر في الم迭代ر، مثال كما يلي:

object Test {
   def main(args: Array[String]) {
      val ita = Iterator(20, 40, 2, 50, 69, 90)
      val itb = Iterator(20, 40, 2, 50, 69, 90)
      
      println("العدد الأكبر هو: " + ita.max )
      println("العدد الأصغر هو: " + itb.min )
   }
}

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

$ scalac Test.scala 
$ scala Test
العدد الأكبر هو: 90
العدد الأصغر هو: 2

للحصول على طول الم迭代ر

يمكنك استخدام it.size أو it.length طريقة لعرض عدد العناصر في م迭代ر. مثال كما يلي:

object Test {
   def main(args: Array[String]) {
      val ita = Iterator(20, 40, 2, 50, 69, 90)
      val itb = Iterator(20, 40, 2, 50, 69, 90)
      
      println("قيمة ita.size هي: " + ita.size )
      println("قيمة itb.length هي: " + itb.length )
   }
}

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

$ scalac Test.scala 
$ scala Test
قيمة ita.size هي: 6
قيمة itb.length هي: 6

الطرق المعتادة لم迭代ر Scala

في الجدول أدناه تم إدراج القائمة من الطرق المعتادة لم迭代ر Scala:

الترقيمالطريقة والوصف
1

def hasNext: Boolean

تعود صحيحة إذا كانت هناك عناصر يمكن العودة منها

2

def next(): A

يعيد العنصر التالي من الم迭代ر ويحدث حالة الم迭代ر

3

def ++(that: => Iterator[A]): Iterator[A]

تقوم بدمج اثنين من الم迭代رات

4

def ++[B >: A](that :=> GenTraversableOnce[B]): Iterator[B]

تقوم بدمج اثنين من الم迭代رات

5

def addString(b: StringBuilder): StringBuilder

تضيف نصًا إلى StringBuilder b

6

def addString(b: StringBuilder, sep: String): StringBuilder

تضيف نصًا إلى StringBuilder b، وتحدد علامة التباين

7

def buffered: BufferedIterator[A]

تقوم بتحويل جميع الم迭代رات إلى BufferedIterator

8

def contains(elem: Any): Boolean

تقوم بفحص ما إذا كان الم迭代ر يحتوي على العنصر المحدد

9

def copyToArray(xs: Array[A], start: Int, len: Int): Unit

تقوم بتقديم القيم المحددة من الم迭代ر إلى مصفوفة

10

def count(p: (A) => Boolean): Int

يعيد عدد العناصر في الم迭代ر التي تفي بالشرط p

11

def drop(n: Int): Iterator[A]

يعيد مجموعة جديدة بعد إسقاط n العناصر الأولى

12

def dropWhile(p: (A) => Boolean): Iterator[A]

يتم التخلص من العناصر من اليسار إلى اليمين حتى لا satisfies الصفحة p.

13

def duplicate: (Iterator[A], Iterator[A])

يتم إنشاء اثنين من الم迭代رات يمكن أن تعود بأكبر عدد ممكن من العناصر في الم迭代ر.

14

def exists(p: (A) => Boolean): Boolean

يعود بالصحيح إذا كان هناك عنصر satisfies الصفحة p في عناصر الم迭代ر.

15

def filter(p: (A) => Boolean): Iterator[A]

يعود بالم迭代ر الجديد الذي يشير إلى جميع العناصر التي satisfy الصفحة p.

16

def filterNot(p: (A) => Boolean): Iterator[A]

يعود بالم迭代ر الذي يشير إلى العناصر التي لا satisfy الصفحة p.

17

def find(p: (A) => Boolean): Option[A]

يعود بالعنصر الأول الذي satisfies الصفحة p أو None. ملاحظة: إذا تم العثور على عنصر satisfies الصفحة، سيتم وضع الم迭代ر بعد هذا العنصر؛ وإذا لم يتم العثور على أي شيء، سيتم وضع الم迭代ر في النهاية.

18

def flatMap[B](f: (A) => GenTraversableOnce[B]): Iterator[B]

يطبق الدالة f على كل عنصر من سلسلة الم迭代ر، ويعود بالم迭代ر الذي يشير إلى سلسلة النتائج.

19

def forall(p: (A) => Boolean): Boolean

يعود بالصحيح إذا كانت جميع العناصر التي يشير إليها it satisfy الصفحة p.

20

def foreach(f: (A) => Unit): Unit

يتم تنفيذ البرنامج المحدد f على كل عنصر يعود به الم迭代ر.

21

def hasDefiniteSize: Boolean

يعود بالصحيح إذا كان عدد عناصر الم迭代ر محددًا (الافتراض يعادله isEmpty).

22

def indexOf(elem: B): Int

يعود بالعنصر الأول الذي equals إلى x من عناصر الم迭代ر. ملاحظة: الم迭代ر سيقفز على هذا العنصر.

23

def indexWhere(p: (A) => Boolean): Int

يعود بالعنصر الذي ي satisfy الصفحة p من عناصر الم迭代ر. ملاحظة: الم迭代ر سيقفز على هذا العنصر.

24

def isEmpty: Boolean

تتأكد من أن it فارغ، إذا كان فارغًا يعود بالصحيح، وإلا يعود بالخطأ (عكس hasNext).

25

def isTraversableAgain: Boolean

يختبر ما إذا كان يمكن تمرير هذا الم迭代ر مرارًا وتكرارًا.

26

def length: Int

يعيد عدد عناصر الم迭代ر.

27

def map[B](f: (A) => B): Iterator[B]

يأخذ كل عنصر من it ويقوم بتحويله إلى مفتاح جديد باستخدام الدالة f.

28

def max: A

يعيد الأكبر بين عناصر الم迭代ر.

29

def min: A

يعيد الأصغر بين عناصر الم迭代ر.

30

def mkString: String

يحوّل جميع عناصر الم迭代ر إلى نص.

31

def mkString(sep: String): String

يحوّل جميع عناصر الم迭代ر إلى نص، ويحدد علامة الفصل.

32

def nonEmpty: Boolean

يحقن ما إذا كان يحتوي المصفوفة على عنصر (يساوي hasNext).

33

def padTo(len: Int, elem: A): Iterator[A]

يبدأ بتحويل جميع عناصر الم迭代ر، ثم يضيف elem حتى يصل الطول إلى len.

34

def patch(from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B]

يعيد م迭代ر جديد حيث يتم استبدال replaced عناصر تبدأ من العنصر من بمعامل الم迭代ر.

35

def product: A

يعيد منتج عنصر النوع النقدي الذي يشير إليه الم迭代ر.

36

def sameElements(that: Iterator[_]): Boolean

يحكم ما إذا كان الم迭代ر والمعامل المحدد يرجعان عناصر متساوية.

37

def seq: Iterator[A]

يعيد عرض سلسلة من المجموعة.

38

def size: Int

يعيد عدد عناصر الم迭代ر.

39

def slice(from: Int, until: Int): Iterator[A]

يعيد م迭代ر جديد يشير إلى قطعة من السلسلة التي تبدأ من العنصر من الرقم من، وتنتهي عند العنصر من الرقم حتى.

40

def sum: A

يعيد مجموع عنصر النوع النقدي الذي يشير إليه الم迭代ر.

41

def take(n: Int): Iterator[A]

يعيد مصفوفة جديدة تحتوي على n عناصر من الم迭代ر.

42

def toArray: Array[A]

يضع جميع العناصر التي يشير إليها المحول في مصفوفة ويقوم بإرجاعها

43

def toBuffer: Buffer[B]

ينسخ جميع العناصر التي يشير إليها المحول إلى منطقية Buffer

44

def toIterable: Iterable[A]

يقدم مجموعة تحتوي على جميع العناصر لهذا المحول أو المحول. لن ينتهي هذا للمحولات اللامتناهية.

45

def toIterator: Iterator[A]

يضع جميع العناصر في محول Iterator ويقوم بإرجاعها

46

def toList: List[A]

يضع جميع العناصر في قائمة ويقوم بإرجاعها

47

def toMap[T, U]: Map[T, U]

يضع جميع المفاتيح والقيم في خريطة ويقوم بإرجاعها

48

def toSeq: Seq[A]

يضع جميع العناصر في محول Seq ويقوم بإرجاعها

49

def toString(): String

يحوّل المحول إلى سلسلة

50

def zip[B](that: Iterator[B]): Iterator[(A, B)]

يقدم محولًا جديدًا يشير إلى سلسلة من التشكيلات الثنائية التي تتكون من العناصر التي تتطابق مع العناصر من المحول والمحول المحدد

يمكنك إلقاء نظرة على المزيد من الطرق مستندات API

جمعيات Scala