大数据学习day15----第三阶段----scala03--------1.函数

1. 函数

  函数就是一个非常灵活的运算逻辑,可以灵活的将函数传入方法中,前提是方法中接收的是类型一致的函数类型

函数式编程的好处:想要做什么就调用相应的方法(fliter、map、groupBy、sortBy),想要具体怎么做,就传入相应的函数

函数式编程的特点之一就是支持链式编程(不停的函数调用函数)

1.1 一种更加简洁的定义函数的方式(_)

以前的形式

简洁的形式

 "_" 相当于一个占位符,将遍历出来的值赋给这个占位符

该占位符号出现两次,其会认为出现两个参数,由于此处就是一个参数,若用如下表达式求平方会报错

 此时想求平方的话可以使用math包来达到目的

1.2  函数和方法区别

  函数可以作为参数传入到方法中【函数本质是一个引用类型】,但是方法不行   

下面的例子似乎能得到方法可以作为参数传入方法

 m相当于m _的语法糖,m _会生成一个函数

问题1:为什么在方法中传入方法m可以执行相应的运算呢?

因为当传入一个方法名时,scala内部会将其转换成函数,实际传入的还是一个函数

问题2:m _这种语法到底是生成了一个跟m方法运算逻辑一样的函数,还是生成的函数调用了m方法呢

 所以m _这种语法是生成了一个函数,这个生成的函数再调用了m方法

猜你喜欢

转载自www.cnblogs.com/jj1106/p/11909321.html