1

前回の質問では、Ruby 変数の機能を拡張する方法を探していました。これに答えると、私は新しい質問につながります。どうやら「モンキーパッチ」がその問題の大部分を解決したものであり、今では少なくとも「monkeypatched」メソッドがFixnumに「monkeypatched」され、天候「3」が有効な値であることを確認する(a = 3).natという行に沿って、間接的にタイピングを行うことができます。natこれは最初は問題ありませんが、まだ少し不器用で直感的ではありません。最後に本当に必要なのは、Fixnum のコンストラクターを書き換え、拡張、インターセプト、またはオーバーロードしてa = 3、メソッドを直接呼び出す方法natです。

これを行う方法はありますか?

私は「適切な方法」に興味があるだけでなく、少し「ハッキー」になる可能性があります。これは私の研究のためだけのものであり、危険でサポートされていない方法になる可能性があります。

4

1 に答える 1

2

あなたの例では、コンストラクターは呼び出されません。何が起こっているのかというと、代入演算子を使用aしてリテラルへの参照を作成しているということです。3=

あなたが望むのは、AFAIKで不可能な割り当てを上書きすることです。

于 2012-08-28T15:22:45.673 に答える