Scala 基本函数

  1. Scala 方法的定义
    Scala 基本函数
//定义有参数函数
  def max(x:Int,y:Int):Int={
    if(x>y)
      x
    else
      y
  }
  //没有参数的函数定义
  def test():Unit={

  }

注意点:

  • 方法定义语法 用 def 来定义
  • 可以定义传入的参数,要指定传入参数的类型
  • 方法可以写返回值的类型也可以不写,会自动推断,有时候不能省略,必须 写,比如在递归方法中或者方法的返回值是函数类型的时候。
  • scala 中方法有返回值时,可以写 return,也可以不写 return,会把方法中最后 一行当做结果返回。当写 return 时,必须要写方法的返回值。
  • 如果返回值可以一行搞定,可以将{}省略不写
  • 传递给方法的参数可以在方法中使用,并且 scala 规定方法的传过来的参数为 val 的,不是 var 的。
  • 如果去掉方法体前面的等号,那么这个方法返回类型必定是 Unit 的。这种说法 无论方法体里面什么逻辑都成立,scala 可以把任意类型转换为 Unit.假设,里 面的逻辑最后返回了一个 string,那么这个返回值会被转换成 Unit,并且值会 被丢弃。
  1. 递归方法
//递归函数
  def test(n:Int):Int={
    //定义递归的边界
    if(n==1)
      1
    else
      n*test(n-1)
  }

  1. 参数有默认值的方法
    默认值的函数中,如果传入的参数个数与函数定义相同,则传入的数值会覆盖 默认值。
    如果不想覆盖默认值,传入的参数个数小于定义的函数的参数,则需要指定参数名称。
 //默认值参数的函数
  def test1(x:Int,y:Int=100):Int={
    x+y
  }
println(test1(200))
  1. 可变参数的方法

 //不定长的参数函数
 //注意:多个参数逗号分开
  def test2(x:Int*):Unit={
    println(x)
  }
  1. 匿名函数
    1 . 有参匿名函数
    2 . 无参匿名函数
    3 .有返回值的匿名函数
    可以将匿名函数返回给 val 定义的值
//匿名函数
  //匿名函数不能定义返回值类型,由其自动推断
  var value=(x:Int,y:Int) => {
    x+y
  }
  1. 偏应用函数
    偏应用函数是一种表达式,不需要提供函数需要的所有参数,只需要提供部分,或 不提供所需参数。
//偏应用函数
  def printLog(date:Date,log:String):Unit={
    println("时间:"+date+"日志:"+log)
  }

private val fun: String => Unit = printLog(d, _: String)
  fun("abc")
  fun("efg")
//时间:Sun Dec 05 18:47:13 CST 2021日志:abc
//时间:Sun Dec 05 18:47:13 CST 2021日志:efg

上一篇:Linux安装mysql(CentOS6)


下一篇:centos6 安装 python3 和 opencv-python