寒假学习日报(三十一)

  今日学习:scala

  主要是函数方面的知识

package com.chapter01.hanshu

object Demo01 {
  def main(args: Array[String]): Unit = {
    //使用方法
    val ha = new haha
    println(ha.sum(10,20))

    //方法转函数
    val f1 = ha.sum _
    println("f1=" + f1)
    println("f1:" + f1(50,60))

    //函数,求和
    val f2 = (n1:Int,n2:Int) =>{
      n1 + n2
    }
    println("f2=" + f2)
    println("f2:" + f2(5,6))
  }

}

class haha{
  //方法
  def sum(n1: Int, n2: Int): Int = {
    n1 + n2
  }
}

package com.chapter01.hanshu

object FunDemo01 {
  def main(args: Array[String]): Unit = {
    val n1 = 30
    val n2 = 20
    val o = '-'
    println(getRes(n1, n2, o))
  }

  //定义函数/方法
  def getRes(n1: Int, n2: Int, oper: Char) = {
    //如果不写return,默认最后一个执行代码返回
    if (oper == '+') {
      n1 + n2
    } else if (oper == '-') {
      n1 - n2
    } else {
      //返回null,若声明时写法为“: Int={}”直接写null不能与Int匹配,会报错
      null
    }
  }
}

package com.chapter01.hanshu

object FunDemo02 {
  def main(args: Array[String]): Unit = {
    var tiger = new Tiger
    println(tiger.name)
    var tiger2 = test01(10, tiger)
    println(tiger2.name)
    //tiger的name发生改变,证明返回的是参数tiger
    println(tiger.name)
  }

  def test01(n1: Int, tiger: Tiger): Tiger = {
    println("n1=" + n1)
    tiger.name = "change"
    tiger
  }
}

class Tiger {
  var name = "start"

 熟悉了一下递归的思路——栈的存储结构

package com.chapter01.hanshu

object Demo02 {
  def main(args: Array[String]): Unit = {
    //输出为2,3,4。栈思想
    test(4)
  }
  def test (n: Int): Unit ={
    if(n > 2){
      test(n - 1)
    }
    println("n=" + n)
  }
}

原文地址:https://www.cnblogs.com/20183711PYD/p/14394153.html