假設我有下面的 case 類,它直接轉換一個 db 表,并且在創建新行時將隨機生成 id。
case class Test(id: UUID, name: String)
現在查看測驗,我需要從 Test 中檢索一行并將其與
val test1 = (...., "testName")
但是我沒有第一個引數,因為它是隨機創建的,我想以某種方式忽略它......
我試著做
test1 = (_, "testName")
但它無效。
有什么辦法可以在 Scala 中忽略 case 類引數嗎?
謝謝!
uj5u.com熱心網友回復:
假設我們有
case class Test(id: UUID, name: String)
這是一個測驗兩個實體Test是否相等的函式,忽略該id欄位。
def myEquality(a: Test, b: Test): Boolean =
a == b.copy(id=a.id)
我們不能明確地告訴 Scala 忽略一個欄位,但我們可以肯定地將該欄位模擬為正確的值。因為這些是 case 類(即不可變的),我們不能通過這個簡單的技巧來搞亂任何其他不相關的資料結構。
uj5u.com熱心網友回復:
要回答提出的問題,答案是否定的。案例類實體由其欄位的值定義。它們不像普通類那樣具有身份屬性。所以實體化一個缺少引數的案例類是不可能的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/344787.html
標籤:斯卡拉
