你好,游客 登录
rss订阅 手机访问 
Scala
如何理解Scala的函数式编程

谈到Scala,必然会提到Scala支持函数式编程。
那么到底什么是函数式编程?它是从哪来的?它有什么特点和好处呢?
如果从理论上去深究,可能一本书的篇幅都不够,关键是,看完之后,还是不知所云。
下面从一个例子出发,对Scala的函数式编程做一个说明。
1. 函数式编程例子
假设有1个int数组numList,要求得到一个新数组newNumList,newNum...
日期:07月21日 作者: 点击:225
挑逗Java程序员的那些Scala绝技
有个问题一直困扰着 Scala 社区,为什么一些 Java 开发者将 Scala 捧到了天上,认为它是来自上帝之吻的完美语言;而另外一些 Java 开发者却对它望而却步,认为它过于复杂而难以理解。同样是 Java 开发者,为何会出现两种截然不同的态度,我想这其中一定有误会。Scala 是一粒金子,但是被一些表面上看起来非常复杂的概念或语法包裹的太严实,以至于人们很难在短时间内搞清楚它...
日期:10/25/2018 19:42:59 作者:沐风 点击:716
Scala面试题:什么是尾递归?
正常递归,每一次递归步骤,需要保存信息到堆栈里面,当递归步骤很多时,导致堆栈溢出。
日期:09/15/2018 15:57:59 作者:IIGEOywq 点击:571
Scala面试题:yield如何工作?

yield用于循环迭代中生成新值,yield是comprehensions的一部分,是多个操作(foreach, map, flatMap, filter or withFilter)的composition语法糖。

 

日期:09/15/2018 15:56:43 作者: 点击:561
Scala面试题:Option类型的定义和使用场景?
在Java中,null是一个关键字,不是一个对象,当开发者希望返回一个空对象时,却返回了一个关键字,为了解决这个问题,Scala建议开发者返回值是空值时,使用Option类型,在Scala中null是Null的唯一对象,会引起异常,Option则可以避免。Option有两个子类型,Some和None(空值)
日期:09/15/2018 15:55:58 作者: 点击:1013
Scala面试题:call-by-value和call-by-name求值策略的区别?
(1)call-by-value是在调用函数之前计算;
(2) call-by-name是在需要时计算
日期:09/15/2018 15:54:33 作者:IIGEOywq 点击:662
Scala面试题:Unit类型是什么?
Unit代表没有任何意义的值类型,类似于java中的void类型,他是anyval的子类型,仅有一个实例对象"( )"
日期:09/15/2018 15:53:44 作者: 点击:1172
Scala面试题:Scala类型系统中Nil, Null, None, Nothing四个类型的区别?
先看一幅Scala类型图
scala类型图.png
Null是一个trait(特质),是所以引用类型AnyRef的一个子类型,null是Null唯一的实例。
Nothing也是一个trait(特质),是所有类型Any(包括值类型和引用类型)的子类型,它不在有子类型,它也没有实例,实际上为了一个方法抛出异常,通常会设置一个默认返回类型。
Nil代表一个List空类型,等同List[Nothing...
日期:09/15/2018 15:52:03 作者:IIGEOywq 点击:928
Scala面试题:伴生对象是什么?
前面已经提到过,伴生对象就是与类名相同的对象,伴生对象可以访问类中的私有量,类也可以访问伴生对象中的私有方法,类似于Java类中的静态方法。伴生对象必须和其对应的类定义在相同的源文件。
日期:09/15/2018 15:51:09 作者:IIGEOywq 点击:871
Scala面试题:unapply 和apply方法的区别, 以及各自使用场景?
先讲一个概念——提取器,它实现了构造器相反的效果,构造器从给定的参数创建一个对象,然而提取器却从对象中提取出构造该对象的参数,scala标准库预定义了一些提取器,如上面提到的样本类中,会自动创建一个伴生对象(包含apply和unapply方法)。
日期:09/15/2018 15:50:03 作者:IIGEOywq 点击:340
Scala面试题:case class (样本类)是什么?
样本类是一种不可变且可分解类的语法糖,这个语法糖的意思大概是在构建时,自动实现一些功能。样本类具有以下特性:
日期:09/15/2018 15:49:08 作者:IIGEOywq 点击:369
Scala面试题:object和class的区别?
日期:09/15/2018 15:48:08 作者:IIGEOywq 点击:464
trait(特质)和abstract class(抽象类)的区别?
(1)一个类只能继承一个抽象类,但是可以通过with关键字继承多个特质;
日期:09/15/2018 15:46:54 作者: 点击:518
var,val和def三个关键字之间的区别?
答:var是变量声明关键字,类似于Java中的变量,变量值可以更改,但是变量类型不能更改。
日期:09/15/2018 15:38:14 作者:IIGEOywq 点击:829
Scala报错:Caused by: org.apache.hadoop.fs.ChecksumException
Caused by: org.apache.hadoop.fs.ChecksumException: Checksum error: file
日期:09/15/2018 15:37:31 作者: 点击:410
  • 1/6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »