5、scala方法和函数

1.定义方法和函数

  2.定义方法

   1.格式:def 名称 (参数名:参数名称) : 返回类型 = {}

   2.方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归方法,必须指定返回类型

   3. Scala中的+ - * / %等操作符的作用与Java一样,位操作符 & | ^ >> <<也一样。只是有

   一点特别的:这些操作符实际上是方法。例如:a + b是如下方法调用的简写:

         a.+(b)

    a 方法 b可以写成 a.方法(b)

 

 2.定义函数

      格式:  val  名称 = (参数:参数类型)=>{}

 

2.方法和函数的区别

  1. 在函数式编程语言中,函数是“头等公民”,它可以像任何其他数据类型一样被传递和操作
  2. 而方法不可以作为方法的参数,只有转化为了函数才能做参数。使用_转换 ,或者传入时编译器自动帮我们转换

    案例:首先定义一个方法,再定义一个函数,然后将函数传递到方法里面

package cn.itcast.scala


  object MethodAndFunctionDemo {

  //定义一个方法

  //方法m2参数要求是一个函数,函数的参数必须是两个Int类型
  //返回值类型也是Int类型

  def m1(f: (Int, Int) => Int) : Int = {

    f(2, 6)

  }

  

  //定义一个函数f1,参数是两个Int类型,返回值是一个Int类型

  val f1 = (x: Int, y: Int) => x + y

  //再定义一个函数f2

  val f2 = (m: Int, n: Int) => m * n

  

  //main方法

  def main(args: Array[String]) {

  

    //调用m1方法,并传入f1函数

    val r1 = m1(f1)

    println(r1)

  

    //调用m1方法,并传入f2函数

    val r2 = m1(f2)

    println(r2)

  }

}
 

                            

 

 

猜你喜欢

转载自blog.csdn.net/make__It/article/details/86622650