page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6228 次

3096 个回答

0 赞同

trait(特质)和abstract class(抽象类)的区别?

(1)一个类只能集成一个抽象类,但是可以通过with关键字继承多个特质; (2)抽象类有带参数的构造函数,特质不行(如 trait t(i:Int){} ,这种声明是错误的)

回答于 2021-09-06 14:25

0 赞同

object和class的区别?

object是类的单例对象,开发人员无需用new关键字实例化。如果对象的名称和类名相同,这个对象就是伴生对象(深入了解请参考问题Q7) 代码示例 //声明一个类 class MyClass(number: Int, text: String) {   def classMethod() = println(text) } //声明一个对象 object MyObject{   def objectMethod()=println("o...

回答于 2021-09-06 14:25

0 赞同

case class (样本类)是什么?

样本类是一种不可变且可分解类的语法糖,这个语法糖的意思大概是在构建时,自动实现一些功能。样本类具有以下特性: (1)自动添加与类名一致的构造函数(这个就是前面提到的伴生对象,通过apply方法实现),即构造对象时,不需要new; (2)样本类中的参数默认添加val关键字,即参数不能修改; (3)默认实现了toString...

回答于 2021-09-06 14:24

0 赞同

Java和Scala 异步计算的区别?

这里作者的意思是他大概也不清楚,请阅读这个 really clean and simple answer on StackOverflow,我个人理解还不到位后续补上。

回答于 2021-09-06 14:24

0 赞同

unapply 和apply方法的区别, 以及各自使用场景?

先讲一个概念——提取器,它实现了构造器相反的效果,构造器从给定的参数创建一个对象,然而提取器却从对象中提取出构造该对象的参数,scala标准库预定义了一些提取器,如上面提到的样本类中,会自动创建一个伴生对象(包含apply和unapply方法)。 为了成为一个提取器,unapply方法需要被伴生对象。 apply方法是为了自动实...

回答于 2021-09-06 14:23

0 赞同

伴生对象是什么?

前面已经提到过,伴生对象就是与类名相同的对象,伴生对象可以访问类中的私有量,类也可以访问伴生对象中的私有方法,类似于Java类中的静态方法。伴生对象必须和其对应的类定义在相同的源文件。 代码示例: //定义一个类 class MyClass(number: Int, text: String) {   private val classSecret = 42   def x = MyCl...

回答于 2021-09-06 14:23

0 赞同

Scala类型系统中Nil, Null, None, Nothing四个类型的区别?

Null是一个trait(特质),是所以引用类型AnyRef的一个子类型,null是Null唯一的实例。 Nothing也是一个trait(特质),是所有类型Any(包括值类型和引用类型)的子类型,它不在有子类型,它也没有实例,实际上为了一个方法抛出异常,通常会设置一个默认返回类型。 Nil代表一个List空类型,等同List[Nothing] None是Opti...

回答于 2021-09-06 14:23

0 赞同

Unit类型是什么?

Unit代表没有任何意义的值类型,类似于java中的void类型,他是anyval的子类型,仅有一个实例对象"( )"

回答于 2021-09-06 14:22

0 赞同

call-by-value和call-by-name求值策略的区别?

1)call-by-value是在调用函数之前计算; (2) call-by-name是在需要时计算 示例代码 //声明第一个函数 def func(): Int = {   println("computing stuff....")   42 // return something } //声明第二个函数,scala默认的求值就是call-by-value def callByValue(x: Int) = {   println("1st x: " + x)   pri...

回答于 2021-09-06 14:22

0 赞同

黑盒、白盒、单元、集成、系统、验收测试的区别与联系?

黑盒:已知功能设计规格,测试每个功能是否符合要求。白盒:已知内部工作过程,测试每种内部操作符合设计规格。黑盒意味着测试在软件的接口处进行,把测试对象看做一个黑盒子,不考虑程序内部逻辑结构和内部特性,仅看需求说明书检查功能是否符合需求。黑盒-》功能测试(或者 数据驱动测试)

回答于 2021-09-04 12:03