gpt4 book ai didi

ruby - 是否可以更改 Ruby 对象的类?

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:56 26 4
gpt4 key购买 nike

是否可以在实例化后更改 Ruby 对象的类,例如:

class A
end

class B
end

a = A.new
a.class = B

或类似的。

(上面的代码不会运行,因为类是一个只读变量)

我知道这是不可取的,有点奇怪,而且不是我打算做的事情,但这可能吗?

最佳答案

不,这在 ruby​​ 中是不可能的。

理论上可以在 C 扩展中通过更改给定对象的 klass 指针来实现,但应该注意的是,这将完全是特定于实现的,不适用于直接类型 (即你绝对不能改变类,例如一个 fixnum),并且可能以各种方式爆炸。

关于ruby - 是否可以更改 Ruby 对象的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7528552/

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