Scala tuple
และรายการ tuples จะไม่เปลี่ยนรูป แต่รายการจะแตกต่างจาก tuple สามารถมีประเภทที่แตกต่างกันขององค์ประกอบ
tuple ค่าโดยมีค่าเดียวในรัฐธรรมนูญวงเล็บ ตัวอย่างเช่น:
val t = (1, 3.14, "Fred")
ตัวอย่างข้างต้นสามองค์ประกอบที่กำหนดไว้ในอันดับที่สอดคล้องกับประเภท ได้แก่ [Int คู่ java.lang.String]
นอกจากนี้เรายังสามารถกำหนดโดยใช้วิธีการดังกล่าว:
val t = new Tuple3(1, 3.14, "Fred")
ประเภท tuple ที่แท้จริงขึ้นอยู่กับชนิดขององค์ประกอบเช่น (99 "w3big") เป็น Tuple2 [Int, String] ( 'U', 'R', "the", 1, 4, "ฉัน") เป็น Tuple6 [char, Char, String, Int, Int, String]
ปัจจุบัน tuple สนับสนุน Scala ยาวสูงสุดคือ 22 สำหรับความยาวมากขึ้นคุณสามารถใช้คอลเลกชันหรือส่วนขยาย tuples
องค์ประกอบการเข้าถึง tuple สามารถดัชนีตัวเลขเป็น tuple A:
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 ซ้ำแล้วซ้ำอีก
คุณสามารถใช้Tuple.productIterator () วิธีการย้ำกว่าองค์ประกอบทั้งหมดของ tuples เอาท์พุท:
object Test { def main(args: Array[String]) { val t = (4,3,2,1) t.productIterator.foreach{ i =>println("Value = " + i )} } }
การดำเนินงานของโค้ดข้างต้นผลลัพธ์คือ:
$ scalac Test.scala $ scala Test Value = 4 Value = 3 Value = 2 Value = 1
tuple เป็นสตริง
คุณสามารถใช้Tuple.toString () วิธีการรวมองค์ประกอบทั้งหมดของ tuple ลงในสตริงตัวอย่างดังต่อไปนี้:
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 องค์ประกอบแลกเปลี่ยน tupleตัวอย่างต่อไปนี้:
object Test { def main(args: Array[String]) { val t = new Tuple2("www.google.com", "www.w3big.com") println("交换后的元组: " + t.swap ) } }
การดำเนินงานของโค้ดข้างต้นผลลัพธ์คือ:
$ scalac Test.scala $ scala Test 交换后的元组: (www.w3big.com,www.google.com)