微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala函数式编程

方法函数函数式编程、面向对象编程

在这里插入图片描述


在这里插入图片描述

函数式编程说明

在这里插入图片描述

基本语法

在这里插入图片描述

  1. 函数申明关键字是 def
  2. [参数:参数类型] 表示函数的输入,可以没有,如果有多个,可以用逗号分割
  3. 函数中的语句是为了实现某一功能代码
  4. 函数可以有返回值,也可以没有
  5. 如果没有 reture ,认以执行到最后一行的结果作为返回值
object FunDemo1 {
  def main(args: Array[String]): Unit = {
    var n1 = 1
    var n2 = 2

    println("sum="+getSum(n1,n2,"+"))
  }

  def getSum(n1: Int, n2: Int,opt: String) = {
    if (opt == "+"){
      n1 + n2
    } else if (opt == "-"){
      n1 - n2
    } else {
      null
    }
  }
}

斐波那契数列实现

object FunDemo2 {
  def main(args: Array[String]): Unit = {
    println(fbn(7))
  }

  def fbn(i: Int) : Int = {
    if ( i == 1){
      1
    } else if (i == 2){
      1
    } else {
      (fbn(i - 2) + fbn(i - 1))
    }
  }
}

函数注意事项

在这里插入图片描述

object FunDemo3 {

  def main(args: Array[String]): Unit = {
    val tiger = new Tiger
    val tiger2 = test(10,tiger)

    println(tiger)
    println("-----")
    println(tiger2)
    println("-----")
    println(tiger.hashCode() + ":" + tiger2.hashCode())
  }

  def test(i: Int, tig: Tiger) = {
    tig.name = "jack"
    tig
  }
}

class Tiger {
  var name:String = ""

  override def toString = s"Tiger(name=$name)"
}

在这里插入图片描述


在这里插入图片描述

object FunDemo4 {

  def main(args: Array[String]): Unit = {
    def f1():Unit = {
      println("f1")
    }

    println("ok!")

    def sayOk() : Unit = {
      println("main sayOk")
      sayOk()
      def sayOk() :Unit = {
        println("sayok sayok")
      }
    }

    def sayNo():Unit = {
      println("main sayNo")
    }

    sayOk()
  }
}

在这里插入图片描述

> 这里是引用

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

    def test(name:String = "jake") = {
      println(name)
    }
  }
}

在这里插入图片描述

在这里插入图片描述

object FunDemo6 {
  def main(args: Array[String]): Unit = {
    MysqLCon(pwd="123456")
  }

  def MysqLCon(user: String = "admin", pwd: String = "123456"): Unit ={
    println("user:"+user+",pwd:"+pwd)
  }
}

在这里插入图片描述

过程

在这里插入图片描述

注意事项

在这里插入图片描述

惰性计算

在这里插入图片描述

惰性函数

在这里插入图片描述

object FunDemo7 {
  def main(args: Array[String]): Unit = {
    lazy val res = sum(10,20)
    println("-------------")
    println("-------------")
    println("-------------")

    println(res)
  }

  def sum(i: Int, i1: Int) :Int = {
    i + i1
  }
}

在这里插入图片描述

惰性函数注意事项

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐