Scala深入浅出实战经典:21,Scala中的偏函数实战详解

package com.dt.scalaInAction.demo_021

/**
 * Scala中的偏函数实战详解
 */
object PartialAppliedFunction {
    def main(args: Array[String]): Unit = {
        val data = List(1, 2, 3, 4, 5, 6)
        /**
         *  foreach实现
         *  @inline override final
         *  def foreach[B](f: A => B) {
         *    var these = this
         *    while (!these.isEmpty) {
         *       f(these.head)
         *       these = these.tail
         *     }
         *   }
         */
       // data.foreach(println _)        //这里的_表示集合中所有的参数列表 row result: 1 2 3 4 5 6
       // data.foreach(x => println(x))  //row result: 1 2 3 4 5 6
        
        
        def sum(a: Int, b: Int, c: Int) = a + b + c
        println(sum(1, 3, 4))   //row result: 8
        
        val fp_a = sum _  //_表示所有的参数列表    val fp_a: (Int, Int, Int) => Int
        println(fp_a(1, 2, 3))  //row result: 6
        println(fp_a.apply(1, 2, 3))   //row result: 6
        
        val fp_b = sum(1, _: Int,  3)  //可以传递其中部分值 单必须声明类型
        println(fp_b(2))       //row result: 6
        println(fp_b(10))      //row result: 14
        
        data.foreach(println _)
        data.foreach(println)
        
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值