1.定义方法和函数
2.定义方法
1.格式:def 名称 (参数名:参数名称) : 返回类型 = {}
2.方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归方法,必须指定返回类型
3. Scala中的+ - * / %等操作符的作用与Java一样,位操作符 & | ^ >> <<也一样。只是有
一点特别的:这些操作符实际上是方法。例如:a + b是如下方法调用的简写:
a.+(b)
a 方法 b可以写成 a.方法(b)
2.定义函数
格式: val 名称 = (参数:参数类型)=>{}
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) } } |