scala中的对偶(Int,Int)和两个Int的类型的参数非常相似
// 使用拉链创造对偶
val p = (1 to 10) zip (11 to 20)
// 这两个函数是不同的,这个是用两个Int,Int做的参数
def adjustToPair(f:(Int,Int) => Int)(pair:(Int,Int)) = {
f(pair._1,pair._2)
}
// 这个是用的对偶(Int,Int)做参数
def adjustToPair(f:((Int,Int)) => Int)(pair:(Int,Int)) = {
// 连续传递两个int会被当作对偶,自动调用apply方法
// f(pair._1,pair._2)
f(pair)
}
val ax = (6,7)
val z = adjustToPair(_ * _)(6,7)
val y = adjustToPair(_ * _)(ax)
println(z,y)
// 生成了Vector[Int] 序列
// 将对偶 => int,int
// 不能直接使用下面的函数
// val ac = p.map(x => _ * _)
// 1.可以将对偶中的Int拿出来在使用
val ad = p.map(x => x._1 * x._2)
// 2.adjustToPair函数起到调整函数类型的作用
val ab = p.map(x => adjustToPair(_ * _)(x))
println(ab)