1

在我的上一个问题中,我正在寻找一种方法来扩展 Ruby 变量的能力。回答这个问题让我想到了一个新问题。显然,“猴子补丁”解决了这个问题的很大一部分,现在我至少可以使用类似于“猴子补丁”方法进入 Fixnum 检查天气“3”是一个有效值的方法(a = 3).nat来间接地进行输入。nat一开始还可以,但仍然有点笨拙和不直观。最后我真正需要的是一种方法来重写、扩展、拦截或重载到 Fixnum 的构造函数,以便a = 3直接调用方法nat

有没有办法做到这一点?

我不仅对“正确的方式”感兴趣,而且可能有点“hacky”。这仅用于我的研究,它可能是一种危险的、不受支持的方式。

4

1 回答 1

2

在您的示例中,未调用构造函数,发生的情况是您通过使用赋值运算符来a引用文字。3=

您想要的是覆盖AFAIK不可能的分配。

于 2012-08-28T15:22:45.673 回答