2017-08-04 110 views
1

我写了一个测试用例类斯卡拉选项类型比较

case class Test(name: String, emp:Option[Boolean]) 

当我创建它的实例说

val t1 = Test("prince", Option(true)) 
val t2 = Test("prince", Option(true)) 

使用==作品就好了比较。我有我的一个同事谁做比较,这样的示例代码,我不清楚他为什么这样做getOrElse在这种情况下

t1.copy(emp = None) == t2.copy(emp = None) && t1.emp.getOrElse(false) == t2.emp.getOrElse(false) 

为什么这更好的办法做这件事?

+0

'副本'的东西似乎相当,一种方法来解决次优表示 – cchantep

回答

2

第二个例子适用于emp为None一个例子,Some(false)为另一个例子。在这种情况下,做t1 == t2将是错误的。