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