scala基础篇·Tuple
代码:
package base
object TestTuple {
def main(args: Array[String]): Unit = {
val tup = (1, 'C', "String", 1.5)
println(tup)
//元组"下标"从1开始
println(tup._1)
//使用空格代替.
println(tup _1)
println(tup._3)
//相当于
// val first = t1._1
// val second = t1._2
// 其他的不要
val (first, second, _, _) = tup
println("first => " + first)
println("second => " + second)
val arr1 = Array(1, 2, 3, 4, 5)
val arr2 = Array('A', 'B', 'C', 'D')
val t2 = arr1.zip(arr2)
for ((x, y) <- t2)
printf("x=%d,y=%c \n", x, y)
//转换为map
println(t2.toMap)
println("Hello".zip("world"))
val (big, eq, small) = stat(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 4)
printf("big=%d,eq=%d,small=%d \n", big, eq, small)
}
/**
* 统计
*
* @param arr
* @param v
* @return
*/
def stat(arr: Array[Int], v: Int): (Int, Int, Int) = {
var bigger = 0
var eq = 0
var smaller = 0
for (i <- arr) {
if (i > v) {
bigger += 1
} else if (i == v) {
eq += 1
} else {
smaller += 1
}
}
(bigger, eq, smaller)
}
}
输出:
(1,C,String,1.5)
1
1
String
first => 1
second => C
x=1,y=A
x=2,y=B
x=3,y=C
x=4,y=D
Map(1 -> A, 2 -> B, 3 -> C, 4 -> D)
Vector((H,w), (e,o), (l,r), (l,l), (o,d))
big=6,eq=1,small=3