开发者学堂课程【Scala 核心编程 - 进阶:作为参数的函数】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9089
作为参数的函数
内容介绍:
一、基本介绍
二、应用实例
三、应用实例小结
一、基本介绍
函数作为一个变量传入到了另一个函数中,那么该作为参数的函数的类型是:
function1(通过参数的个数来确定参数的函数类型,如果只有一个参数,那就是function1,有两个就是 function2),即:(参教类型)=→返回类型
二、应用实例
//说明
def plus(x: Int
)
= 3 +x
//说明
val result1 = Array(1,2,3,4).map(plus(_))
println(result 1.mkString(","))
演示如下:
object FunParameter {
def main( args: Array[string]) : unit = {
def plus(x: Int) = 3 +x
//说明
val result1 = Array( 1,2,3,4).map(plus(_))
printLn(result1.mkstring( "
,
"))/(4,5,6,7)
/
/说明
/ /1.在scala中,函数也是有类型,比如pLus就是<function1>
println( "puls的函数类型function1" +(plus _))
}
运行结果如下:
D :
\
program
\
jdk
8
\bin\java
4,5,6,7
puls的函数类型function1<functiqn1>
Process finished with exit code
0
三、应用实例小结
1) map(plus(_))中的plus(_)就是将 plus 这个函数当做一个参数传给了map,_这里代表从集合中遍历出来的一个元素。
2) plus(_)这里也可以写成 plus 表示对Array(1,2,3,4)遍历,将每次遍历的元素传给plus的x
3)进行3+x运算后,返回新的Int,并加入到新的集合 result1中
4) def map[B,That](f: A=>B)的声明中的 f:A=>B一个函数