博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scala方法和涵数的声明以及方法转换成涵数
阅读量:4983 次
发布时间:2019-06-12

本文共 936 字,大约阅读时间需要 3 分钟。

scala方法和涵数的声明以及方法转换成涵数:

 

方法声明:

scala> def m1(x:Int, y:Int) : Int = x + y

m1: (x: Int, y: Int)Int

scala> m1(3,4)

res9: Int = 7

x + y为涵数体 

涵数声明:

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

f1: (Int, Int) => Int = <function2>

(Int, Int)参数类型

黄色是返回类型,后面的 <function2>表示两个参数的一个涵数,x + y为涵数体

 

scala> def m2(f:(Int,Int)=>Int) = f(3,4)

m2: (f: (Int, Int) => Int)Int 定入的一个方法m2并且方法的参数是一个涵数类型的参数,后面是方法的实现体

 

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

f1: (Int, Int) => Int = <funtion2>定义一个有两个参数的涵数 f1,做为方法m2的参数传入方法体

 

scala> m2(f1) 方法里面传入涵数名调用(即scala可以将一个涵数当做参数进行传入)

res10: Int = 7

 

方法转换为一个涵数;

scala> def m1(x:Int,y:Int):Int=x+y         //定义一个两个参数为int类型且返回类型也是一个int的一个方法m1

m1: (x: Int, y: Int)Int

 

scala> val f1 = m1 _                        //将m1转换成涵数据并用 f1 接收  方法名+空格+下划线

f1: (Int, Int) => Int = <function2>

然后就可以调用 m2(f1)

scala> m2(f1)            传入转换过的涵数

res12: Int = 7

scala> m2(m1)           直接传入方法也没有报错是因为scala内部自动隐式转换成了涵数后当做m2方法的参数传入的,这有个隐式转换过程

res13: Int = 7

 

转载于:https://www.cnblogs.com/cindy-zl24/p/11533652.html

你可能感兴趣的文章
流水作业调度
查看>>
涨姿势系列之——内核环境下内存映射函数
查看>>
遍历数组批量更新数组里元素的某一项属性
查看>>
github 收藏项目的方法
查看>>
九的余数
查看>>
北京师范大学第十五届ACM决赛-重现赛K Keep In Line ( 字符串模拟实现)
查看>>
(转)C# — WinForm 消息框的使用
查看>>
时间管理(转)
查看>>
Future FutrueTask Callable类源码说明以及原理使用
查看>>
flask 外键关系和多对多查询
查看>>
接收行数,打印平行四边形
查看>>
Linux上coredump调试:call stack栈顶函数地址为0 分析实战
查看>>
Educational Codeforces Round 11——C. Hard Process(YY)
查看>>
0054 Spring MVC的@Controller和@RequestMapping注解
查看>>
C#学习总结
查看>>
python字符串实战
查看>>
SQL学习笔记之B+树的几点总结
查看>>
力扣——字符的最短距离
查看>>
列表的操作
查看>>
8 通用输入输出口
查看>>