有没有一种简单的方法来测试对象是否是不可变的(数字,零)或不是(数组,哈希,对象)?换句话说,它可以被其他代码的副作用改变吗?
动机:我想创建一个版本化的值存储,但有些数据是数组.一些数组将存储自定义对象,我可以通过存储"in"属性并搜索它来反转关系.但我也希望能够存储符号数组,其他数组等.
我找到了一种效率低下的方法:
class Object def primitive? begin self.dup false rescue TypeError true end end end