gpt4 book ai didi

ruby - 包含 proc 对象的集合的深拷贝

转载 作者:数据小太阳 更新时间:2023-10-29 08:10:18 24 4
gpt4 key购买 nike

我需要制作一个对象的深拷贝。我知道制作深拷贝的唯一方法一个对象具有以下内容:

Marshal.load(Marshal.dump(my_object))

令我沮丧的是,我发现如果某些元素被深度复制的对象是一个 proc 对象然后我得到一个错误,因为 proc 对象没有有一个转储方法,不能被深度复制方式。

我如何制作一个对象的深拷贝它们中的 proc?

最佳答案

在 Ruby 中使用 clone 进行深层复制应该可以解决问题。 (编码不适用于某些对象……如果 Procs 属于该类别,它就有意义了)。

clone 是一种约定,表示深度复制,即使 Ruby 不支持开箱即用的深度复制。然而,an answer on SO to a similar question有一个非常好的、通用的 clone

实现

关于ruby - 包含 proc 对象的集合的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com