Scala命名参数和匿名函数

Scala命名参数

通常情况下,传入参数与函数定义的参数列表一一对应
命名参数允许使用任意顺序传入参数

def printName(first:String, last:String) = {
    println(first + " " + last)
}
 
//Prints "John Smith"
printName("John","Smith")
printName(first = "John",last = "Smith")
printName(last = "Smith",first = "John")

示例

通过指定参数名字,传递参数值

object test {
  def main(args: Array[String]): Unit = {
  def canshu1(name:String,age:Int):Unit={
    println(s"你的名字是$name,你的年龄是$age")
  }
    canshu1("老王",18)
    canshu1(age=20,name="老张")
  }
}

参数的长度未知,通过*来表示,可以传入多个参数

object test {
  def main(args: Array[String]): Unit = {
  def canshu2(name:String,a:String*):Unit={
    println(name)
    for(i<-a)
      print(i)
  }
    canshu2("老王","你是","帅哥","嘛?")
  }
}

匿名函数

指不含函数名称的函数
匿名函数定义

  • "=>"左边为参数列表
  • "=>"右边为函数体
(x:Int)=>x*x
(x:Int)=>{println(x);x*x}
() => { System.getProperty("user.dir") }
val f1=(x:Int)=>{println(x);x*x}
f1(2)

匿名函数定义及使用

object test {
  def main(args: Array[String]): Unit = {
    //匿名函数:(a:Int,b:Int)=>a+b
      def sum1(a:Int,b:Int):Int=a+b

    //定义一个变量或常量去调用匿名函数
      val aa=(a:Int,b:Int)=>a+b
      val bb=aa
      println(sum1(10,10))
      println(aa(10,20))
      println(bb(10,30))

      val  a  : Int          = 10
      val sum2:(Int,Int)=>Int=(a:Int,b:Int)=>a+b
      val sum3:(Int,Int)=>Int=aa
      val sum4:(Int,Int)=>Int=sum1
      println(sum2(10,40))
      println(sum3(10,50))
      println(sum4(10,60))
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值