English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
كما في القوائم، تكون التجميعات غير قابلة للتغيير، ولكن على عكس القوائم يمكن أن تحتوي التجميعات على أنواع مختلفة من العناصر.
تكون قيم التجميع من خلال تضمين القيم الفردية داخل الأقواس المزدوجة. على سبيل المثال:
val t = (1, 3.14, "Fred")
في المثال أعلاه، تم تعريف ثلاثة عناصر في التجميع، وتبين أن أنواعها هي [Int, Double, java.lang.String].
بالإضافة إلى ذلك، يمكننا أيضًا تعريفها بهذه الطريقة:
val t = new Tuple3(1, 3.14, "Fred")
نوع التجميع الفعلي يعتمد على نوع عناصره، مثل (99, "w3codebox") هو Tuple2[Int, String]. ('u', 'r', "the", 1, 4, "me") هو Tuple6[Char, Char, String, Int, Int, String].
حاليًا، يدعم Scala أطول تجمع هو 22. للطول الأكبر يمكنك استخدام المجموعات أو توسيع التجميع.
يمكن الوصول إلى عناصر التجميع عن طريق الرقم الصحيح، مثل التجميع التالي:
val t = (4,3,2,1)
يمكننا استخدام t._1 للوصول إلى العنصر الأول، t._2 للوصول إلى العنصر الثاني، كما هو موضح أدناه:
object Test { def main(args: Array[String]) { val t = (4,3,2,1) val sum = t._1 + t._2 + t._3 + t._4 println( "مجموع العناصر هو: " + sum ) } }
أ�行اء الكود أعلاه، الناتج المتوقع هو:
$ scalac Test.scala $ scala Test مجموع العناصر هو: 10
يمكنك استخدام Tuple.productIterator() طريقة لتكرار عرض جميع عناصر الزوج:
object Test { def main(args: Array[String]) { val t = (4,3,2,1) t.productIterator.foreach{ i =>println("القيمة = " + i )} } }
أ�行اء الكود أعلاه، الناتج المتوقع هو:
$ scalac Test.scala $ scala Test القيمة = 4 القيمة = 3 القيمة = 2 القيمة = 1
يمكنك استخدام Tuple.toString() طريقة لدمج جميع عناصر الزوج في نص، إليك مثال:
object Test { def main(args: Array[String]) { val t = new Tuple3(1, "hello", Console) println("الخط الناتج المدمج هو: " + t.toString() ) } }
أ�行اء الكود أعلاه، الناتج المتوقع هو:
$ scalac Test.scala $ scala Test الخط الناتج المدمج هو: (1,hello,scala.Console$@4dd8dc3)
يمكنك استخدام Tuple.swap طريقة لتغيير عناصر الزوج. إليك مثال:
object Test { def main(args: Array[String]) { val t = new Tuple2("www.google.com", "ar.oldtoolbag.com") println("الزوج المتبادل: " + t.swap ) } }
أ�行اء الكود أعلاه، الناتج المتوقع هو:
$ scalac Test.scala $ scala Test الزوج المتبادل: (ar.oldtoolbag.com,www.google.com)