Scala高阶函数

高阶函数(Higher-Order Function)高阶函数可以使用其他函数作为参数,进入方法内使用,或者使用函数输出结果作为参数。

1.使用函数输出结果作为参数

object Demo {
  def main(args: Array[String]): Unit = {
   delayed(time()) //time()返回值为Long类型,或者此处出入一个Long类型的值(数值即可)
  }

  // 函数1,返回当前时间纳秒数,Long类型
  def time() = {
    println("获取时间,单位为纳秒")
    System.nanoTime
  }
  // t: => Long  可以简写为t:Long, =>Long表示如果传入参数为方法时返回值为Long类型
  def delayed( t: => Long ) = {
    println("在 delayed 方法内")
    println("参数: " + t)
    t
  }
}

2.使用其他函数作为参数,进入方法内使用

object Demo {
  def main(args: Array[String]): Unit = {
    println(apply(layout,1))
    println(apply(layout,1))

  }

// 函数 f 和 值 v 作为参数,而函数 f 又调用了参数 v
// f:Int => String,传入的方法参数,有一个Int类型的参数,并且返回值为String
//  def apply(f: Int => String, v: Int) = f(v,2)
// A为泛型,在上面apply的参数f:Int,由Int类型声明
//  def layout[A](x: A) = "[" + x.toString() + "]"


  // f: (Int, String) 确定参数个数,并指定泛型类型,没有参数可以不写 => String,String为返回值类型
  def apply(f: (Int, String) => String, v: Int) = f(v,"3")
// A,B为泛型,返回值为String类型
  def layout[A,B](x: A,y:B) = "[" + x.toString() + y.toString() + "]"

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值