16
A
回答
13
如果該複雜對象是可變的或包含可變部分,則解決方案與Java中的相同。檢查Java的問題&關於它的帖子,並做到這一點。
如果一切都是不可變的,那麼你不需要也不應該克隆任何東西。充其量,你應該製作一個對象的淺拷貝,只更改需要改變的字段,並且最壞的情況下,你使用像透鏡或拉鍊這樣的東西來複制一些深層對象並向上傳播這些變化。查看有關鏡頭和拉鍊的Scala問題。
1
我得到了一個示例代碼,用於克隆可變狀態對象:Implementing '.clone' in Scala
相關問題
- 1. 如何克隆js對象?
- 2. 如何克隆Dictionary對象?
- 3. 如何克隆HttpServletResponse對象
- 4. 如何克隆Silverlight中的Binding對象?
- 5. 如何克隆as3中的對象
- 6. 如何克隆android中的對象?
- 7. 如何克隆C#中的DateTime對象?
- 8. 克隆對象
- 9. c中的克隆對象#
- 10. 如何在NHibernate中克隆對象?
- 11. 克隆Java對象
- 12. PHP - 對象克隆
- 13. 克隆dom.Document對象
- 14. 深克隆對象
- 15. 在VBA中克隆對象?
- 16. 在Java中克隆對象
- 17. 在javascript中克隆對象
- 18. 克隆對象也克隆新數據,如何防止?
- 19. 對象的深度克隆
- 20. 克隆對象的動機
- 21. 修改克隆的對象
- 22. 克隆的ResourceDictionary對象
- 23. Qt的C++ - 克隆對象
- 24. 克隆的VBScript Err對象
- 25. 如何克隆GroupOfNames Active Directory對象?
- 26. 如何克隆RDD對象[Pyspark]
- 27. 如何正確克隆對象類?
- 28. 如何在角度上克隆對象?
- 29. 如何克隆一個Parcel對象
- 30. 如何正確克隆對象在WinJS
哪個對象?它是一個巨大的差異。也許有一個簡單的方法,也許有一個困難的方式,也許根本沒有辦法(這可能是一個很好的理由!)。 –
通常最好的解決方案是設計你的程序,避免完全克隆。 Scala對不可變數據結構的良好支持使得特別容易。 –
請注意,如果您的對象是一個案例類,則會有一個由編譯器生成的複製方法,該方法允許完整副本以及通過命名參數重寫某些字段。 – mpilquist