Scala的方法和函数

方法和函数

Scala 中的+ - * / %等操作符的作用与 Java 一样,位操作符 & | ^ >> <<也一样。
只是有一点特别的:这些操作符实际上是方法。例如:
a + b
是如下方法调用的简写:
a.+(b)
a 方法 b 可以写成
a.方法(b)
要理解
.的用法

定义方法

在这里插入图片描述

定义方法

在这里插入图片描述函数的意义:表示接受两个 Int 类型的变量,然后做累加。
经过 scala 的自动类型推断得知,最后返回的结果数据的类型也是 Int。
Function2 中 2 表示这个函数接收的参数个数是 2 个。

方法和函数的区别

1、函数可以作为参数传递给方法,也就是说函数可以作为方法的参数,在函数式编程语言中,函数是“头等公民”,它可以像任何其他数据类型一样被传递和操作
案例:首先定义一个方法,再定义一个函数,然后将函数传递到方法里面
在这里插入图片描述
2、函数可以作为方法的参数,但是也可以作为函数的参数,例如:在这里插入图片描述
3、方法也可以作为方法的参数。在需要传入函数作为参数的位置上传入一个方法的话,那么这个方法会被自动的转换为函数作为参数,也可以通过“_”把方法转换为参数
在这里插入图片描述
4、方法也可以作为函数的参数。其实,原理就是方法会被自动转换为函数,所以也就是传入一个函数到一个函数作为参数。
在这里插入图片描述

package com.auru.Leon

object MethodAndFunctionDemo {
 //定义一个方法
 //方法 m2 参数要求是一个函数,函数的参数必须是两个 Int 类型
 //返回值类型也是 Int 类型
 def m1(f: (Int, Int) => Int) : Int = f(2, 6)
 // 定义一个计算数据不被写死的方法
 def m2(f: (Int, Int) => Int, x:Int, y:Int) : Int = f(x, y)
 // 定义一个需要两个 Int 类型参数的方法
 def m3(x:Int, y:Int):Int = x + y
 //定义一个函数 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)
 // 调用 m2 方法, 传入 f1 函数
 val result1 = m2(f1, 2, 4)
 println(result1)
 // 调用 m2 方法,传入 f2 函数
 val result2 = m2(f2, 2, 4)
 println(result2)
 // 调用 m2 方法, 传入 mm 方法作为参数
 println(m2(m3, 2, 4))
 }
}

将方法转换成函数使用

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值