scala中的对偶转换类型函数

本文探讨了Scala中对偶类型的应用,并通过实例展示了如何使用对偶来简化函数调用。同时,介绍了两种处理对偶的不同方法及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值