Scala中=>的用法

 1.匿名函数
  (x: Int) => x + 1这一部分就是一个匿名函数,我这里使用了一个变量anonymousFun代替了这个匿名函数方便测试调用;

  =>左边是参数和参数类型,而=>右边是函数体,并没有函数名。

val anonymousFun = (x: Int) => x + 100
2.按名调用

按名调用,传递进来的参数可以是一个函数。

def callByName(funName : => Int)={
    //本例要求传递进来的函数返回值类型是Int型
    println("参数: " + funName)
    funName //每次使用传名调用时,解释器都会计算一次表达式的值
}
def f(x:Int):Int = {
   return x
}

 3.表示函数的类型

  这个函数可以分成两部分:
  第一部分是val f: Int => String,定义了一个函数,用f表示这个函数,其输入参数是一个Int型变量,返回值是String类型。
  第二部分是等号右边的,myInt => "The value of myInt is: " + myInt.toString(),输入参数变量是myInt,返回值是一个字符串。其实这一部分是一个匿名函数。
  例如:A => T,A,B => T表示一个函数的输入参数类型是“A”,“A,B”,返回值类型是T。
val f: Int => String = myInt => "The value of myInt is: " + myInt.toString()

当输入参数有多个变量时,需要加上括号:

val f2: (Int, Int) => String = (myInt, i) => "The value of myInt is: " + myInt.toString()

4.case语句

val x = 10; val y = 20
    x: Int = 10
    y: Int = 20
val max = x > y match {
     case true => x
     case false => y
}
max: Int = 20

测试

def main(args: Array[String]): Unit = {

    def double(x: Int) : Int = 2*x

    println(anonymousFun(3))

    println(callByName(f(3)))

    println(funType(2))

    println(anonymousFun2)

  }


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值