第3课 隐式转换

简介:
1)val array=Array(1,2,3,4,5);
array.map(item => 2*item);map的作用是循环遍历array中的每一个元素,并把每个元素做为具体的值传给map中的做为参数的函数。map执行结果为Array[Int] =Array(2,4,6,8,10);函数的参数也是函数,item时匿名函数,这个也是高阶函数
2)高阶函数的返回值也可能是函数。高阶函数的参数是函数,这是高阶函数的2个层面。高阶函数可以自动推断出函数参数的类型。而且对只有一个参数的函数,可以省略参数和参数类型外围的小括号。如果在函数的参数的作用的函数体中,只使用了一次参数的具体的值的话,可以将参数的名称省略,用_代替。
3)科里化,有俩个参数的函数,可以转化为俩个函数,第一个函数接收那函数的第一个参数,第2个函数接收那函数的第2个参数,俩个函数的连续调用,有闭包的功能。
4)Spark,叫做分布式数据集合的函数式编程。即函数式编程作用于数据集合之上
5)隐式转换,隐式类,隐式参数,隐式对象,基本思想是可以手动指定,将某种类型的对象,或者类转化成其它类型的对象或者类,之所以要转换是因为,类本身没有这个方法,但我找他要这个方法,所以它要按我们指定的规则,进行隐式转换成具有这个方法的类型或者对象。然后使用这个类型或者对象,调用这个方法,处理我们想要的功能,如人看到怪兽,变成超人。变身打怪兽,完后又是正常人。   
6)定义了隐式转换函数,在编写程序的时候,被scala会自动使用在上下文中。scala会根据隐式转换函数的签名,在程序运行时,使用隐式转换函数,将接收的参数类型定义的对象自动升级转换成隐式转换后的对象。它转换成另一种类型的对象返回,这个时候,这个实例对象,就可能会有之前没有的方法了。使用完成之后消失,继续回归正常。隐式转换,本身不是用户手动调用的。    例如:scala运行时,会看Flie有没有speak这个方法,如果没有,java会报错而scala会看看有没有隐式转换,能够转换成具有这个方法的增级版本的类型的对象。如果有就会自定的进行隐式转换。函数名称定义为 implicit def manToSuperMan();什么to什么的格式。这样可以很好的扩展接口
目录
相关文章
|
4月前
|
程序员 C语言
【C语言基础考研向】06运算符与表达式
本文介绍了C语言中的运算符分类、算术运算符及表达式、关系运算符与表达式以及运算符优先级等内容。首先概述了13种运算符类型,接着详细说明了算术运算符的优先级与使用规则,以及关系运算符和表达式的真假值表示,并给出了C语言运算符优先级表。最后附有课后习题帮助巩固理解。
131 10
|
8月前
|
编译器 C语言 C++
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(下)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
66 2
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(下)
|
8月前
|
算法 编译器 C语言
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(上)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
54 3
|
8月前
|
编译器 C语言 C++
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(中)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
46 1
|
8月前
|
存储 安全 编译器
【C++ 隐式转换】探究C++中隐式转换的奥秘
【C++ 隐式转换】探究C++中隐式转换的奥秘
228 0
string类练习题
string类练习题
76 1
|
编译器 C语言 C++
C语言第十二课---------操作符的介绍与使用(下)
C语言第十二课---------操作符的介绍与使用(下)
|
Serverless C语言
c语言学习第26课——字符函数
c语言学习第26课——字符函数
137 0
|
安全 编译器 程序员
【C++知识点】类型转换
【C++知识点】类型转换
151 0
|
存储 人工智能 C++
C++学习笔记(十二)——String类练习题(下)
C++学习笔记(十二)——String类练习题(下)
C++学习笔记(十二)——String类练习题(下)