這種管理靈活,類型化,一成不變的數據結構在Scala是後續現在斯卡拉2.8.0測試版了這個問題:在2.8.x
What is a proper way to manage flexible, typed, immutable data structures in Scala?
這項新技術是複製案例類,例如
case class Person(name:String, email:String)
val bob = Person("Bob", "[email protected]")
val jill = bob.copy(name = "Jill")
除外斯卡拉我看來,限制到22(?)的情況下類屬性的事實,這個偉大的工程。這可能看起來很多,在我的情況下是不夠的。
23,我得到:「錯誤:類型Function23不是包scala的成員」。我可以定義我自己的Function23等,但我不知道它的含義。
所以現在我回到原點了。我需要使用公共變量,我試圖避免它,或者創建一個26+參數構造函數和一個配對副本方法。伊克。
22似乎在這裏是一個相當隨意的限制。有沒有解決的辦法?
這是數據導入,這看起來是這樣的:
new CatalogImportRecord() {
override val List(SVal(vendorSku), SVal(title), IVal(issues),
_, // YToMVal(termMonths),
DVal(sellPrice), DVal(buyPrice), DVal(retailPrice), NotesVal(allowsNew, allowsRenewals),
_) //DateValMdy(lastUpdated))
= fields
你可以看到我註釋掉未使用的提取,以減少字段數。
也許有更好的方法來做到這一點。我發現這種提取技術有點僵化,但這可能是最好的。
我沒有編程綜合。這是我正在導入的有很多字段的記錄的內部反映。分組相關的字段會讓我的提取代碼非常難看。 @雷克沒有冒犯,但這個例子並不漂亮。 我打倒了現在的字段數,但這似乎是一個相當愚蠢的限制,一個語言有....我拼命試圖避免通用哈希表,並且現在... 添加了導入上面的代碼示例。 –
@Rex的意思是說,生成產品類的代碼 - 當前預測的原因 - 是自動生成的。他建議你用不同的設置生成一個新的庫,順便說一下,如果你打算使用case case,它確實是唯一的選擇。 –