在水星我可以使用:斯卡拉是否有記錄更新語法,用於製作不可變數據結構的修改克隆?
A = B^some_field := SomeValue
至A與B結合的副本,除了some_field
是SomeValue
,而不是不管它是B.我相信哈斯克爾相當於是一樣的東西:
a = b { some_field = some_value }
斯卡拉是否有這樣的「修改」不可變的值。替代似乎是有一個構造函數直接設置實例中的每個字段,這並不總是理想的(如果有構造函數應該維護的不變量)。另外,如果我必須明確地傳遞我想要修改副本的實例中的所有其他值,它將非常笨重並且更加脆弱。
我找不到任何關於這個的搜索結果,或者通過對語言參考手冊或「Scala示例」的簡短調查(我已經閱讀開始到結束,但尚未吸收所有內容,所以它可能在那裏)。
我可以看到,這個功能可以與Java風格訪問保護和子類,雖然一些奇怪的相互作用...
是不是你要找的案例類? http://daily-scala.blogspot.com/2010/01/case-classes-in-28.html –
另請參閱http://stackoverflow.com/questions/3900307/cleaner-way-to-update-nested-結構 –