Scala 高阶函数-参数& 返回值练习

package b

/**
 * @author
 * @date 2021/7/17 14:32
 * @VERSION 1.0
 */
object work {

  //对数组进行处理,将操作抽象出來,处理完毕后的结果返回一个新的数组
  def f1(arr1:Array[Int],op:Int=>Int):Array[Int]={
    for(a <- arr1 ) yield  op(a)
  }

  def op(a:Int):Int={
    a+1
  }

  //练习1:定义一个匿名函数,并将它作为值赋给变量fun。函数有三个参数,类型分别 为Int,String,Char,返回值类型为Boolean。
  //要求调用函数fun(O,"",0')得到返回值为false,其它情况均返回true。
  val f1=(a:Int,b:String,c:Char)=> !(a==0 && b=="" && c=='0')

  /*
  练习2:定义一个函数func,它接收一个Int类型的参数,返回一个函数(记作f1)。
  它返回的函数f1,接收一个string类型的参数,同样返回一个函数(记作2)。函数f接
  收一个Char类型的参数,返回一个Boolean的值。
  要求调用函数func(0)("")(O')得到返回值为false,其它情况均返回true。
   */
   def func(a:Int):String=>(Char=>Boolean)={
     def f1(str:String):Char=>Boolean={
       def f2(c:Char):Boolean={
         !(c=='0' && str=="" && a==0)
       }
       f2
     }
     f1
   }
  //练习2 的匿名函数
  val func2=(a:Int)=>(str:String)=>(c:Char)=> !(c=='0' && str=="" && a==0)

  //练习2 的另一种写法
  def func3(a:Int):String=>(Char=>Boolean) ={
    str=>c=> !(c=='0' && str=="" && a==0)
  }



  def main(args: Array[String]): Unit = {
/*    val array :Array[Int] =Array(1,2,3,4)
    println(f1(array,op).foreach(print))*/
    println(f1(1,"22",'0'))
    println(func(0)("")('0'))
    println(func2(0)("")('0'))
    println(func3(0)("")('0'))

  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王子健121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值