2017-08-04 82 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將是錯誤的。