Scala中函数&&方法的声明

函数&&方法的声明
object Test1 extends App {

  // 定义一个函数
  def square(x:Int) = {
    println("传入的值是:"+x)
    val res= x*x
    println(res)
  }

  square(5)   // 函数已经被调用,但是函数值没有被打印出来

  // 变形
  // 返回值类型为Unit的时候 = 可以不写
  def printName(x:String) = {
    println(x)
  }

  printName("陈俊")

  // 匿名函数
  val func1 = (x:Int) => {
    x * x
  }

  // 定义一个函数2
  val func2:Int=>Int = (x:Int) =>{
    x * x
  }

  // 定义两个参数的函数
  val func3 = (x:Int,y:Int) => {
    x + y
  }

  val func4:((Int,Int)=>Int) = (x:Int,y:Int) =>{
    x+y
  }


  // 不写参数列表
  // 参数不写,但是参数类型从什么变成了什么需要写,不然报错
  val func5:((Int,Int)=>Int) = (_+_)


  println(func1(1))
  println(func2(2))
  println(func3(3, 4))
  println(func4(5, 6))
  println(func5(7, 8))




}

函数的调用

1、传值调用

  // 默认就是传值,传入一个形参
  def square2(x:Int) ={
    println(x)
    x* x
  }
  square2(1+2)
  // 传值调用就是把1+2先计算出来,然后放到形参的位置,后续都使用这个计算结果

在这里插入图片描述

2、传名调用

  // 传名调用:用到的时候才会计算值,之前都是个函数
  // 注意: x:后面有个空格
def square3(x: => Int):Int ={
    println(x)
    x*x
  }

  square3(1+2)

在这里插入图片描述

命名参数&&缺省值
  println("--------------命名参数------------------")
   def printName2(first:String,last:String) = {
     println(first+ "" + last)
   }

  printName2("chen","jun")

  printName2(last = "jun",first = "chen")   // 顺序可以打乱



  println("------参数的缺省值-----------")
  // 直接给参数列表赋值,调用函数的时候,这两个参数都有缺省值,可以不传参就可以调用
  def printName3(first:String="James",last:String="Smith") = {
    println(first+ "" + last)
  }

  printName3()
  // 如果没有缺省值,不传参会报错


  // 想改变缺省值,就直接传参
  printName3(last = "chen")
  printName3("chenjun","jun")

在这里插入图片描述

匿名函数
  //匿名函数:就是定义一个函数不起名字
  //  =>  左边是参数列表,右边是函数体
  // (参数列表) => {函数体]

  val res = () => {    // 空参
    System.getProperty("user.dir")   //
  }

  println(res)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值