4

当我需要从 C# 或 Java 中的类返回不可变集合时,我将其作为 IEnumerable 接口返回。Ruby 中的标准方法是什么?克隆?冻结?

4

1 回答 1

5

如果您想在RuntimeError尝试修改时提出问题,请使用freeze(). 如果你只想阻止调用者修改你的数据,那么clone()是一个不错的选择。

请记住,freeze() 可能不会像您期望的那样工作

就个人而言,我从来不需要freeze(),但clone()通常很有用。

于 2012-07-11T03:43:04.587 回答