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
  }
}

在这里插入图片描述

惰性函数注意事项

在这里插入图片描述

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...