私は Seven Programming Languages in Seven Weeks を読んでいますが、問題の 1 つに次のように書かれています。
分母がゼロの場合、どのように変更/
して戻りますか?0
私は最初に自分自身/
を定義し、その実装を次の/
ように元のメソッドにプロキシしようとしました:
Number oldSlash := Number getSlot("/")
Number / = method(x, Number oldSlash(x))
しかし、それは私にとってはうまくいきませんでした。いくつかのグーグルを行った後、同様のコードを見つけました。私が見つけたコードself
は、メソッドの実装で使用されていました。だから、私は使用self
してみましたが、うまくいくようでした:
Number oldSlash := Number getSlot("/")
Number / = method(x, self oldSlash(x))
私の質問は次のとおりです。キーワードが使用されているときにこれが機能するのはなぜですか。代わりself
に が使用されていると機能しないのはなぜですか?Number